1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Mã hóa thông tin với java (tập 1 java căn bản) phần 2

86 2 0
Tài liệu được quét OCR, nội dung có thể không chính xác

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Mã Hóa Thông Tin Với Java (Tập 1 Java Căn Bản) Phần 2
Định dạng
Số trang 86
Dung lượng 19,19 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Cú pháp của phương thức là: public final boolean readBoolean throws I0Exception - Phương thức readByie đọc một byte va cé giá trị trả về là byte đọc được.. Cú pháp của phương thức là: p

Trang 1

Chương 4: Sơ lược vẻ luồng và cơ sở dữ liệu m¡ [MP Chuong 4:

So: luge vé ludng va co sở dữ liệu

Nhập uò xuất một cơ sở dữ liệu đơn giản

Trong chương này, chúng tôi sẽ minh hoạ một số chương trình về thao tác cơ sở dữ liệu Bạn đọc nên đọc kỹ và thử lại để

hiểu rõ hơn Khi đã nắm bắt được các vấn để về thao tác cơ sở dữ liệu, bạn hãy thử phát triển một số chương trình cho cơ sở đữ liệu

Employee[] staff = new Employee[3];

staff[0] = new Employee("Cracker’, 75000,1987, 12, 15);

staff[1] = new Employee("Hacker", 50000,1989, 10, 1),

staff[2] = new Employee("Tester’ , 40000,1990, 3, 15);

try

{

Trang 2

[MỊ? ;› Chương 4: Sơ lược về luồng và cơ sở dữ liệu

System.out.printin("Print the employee records:");

for (int i=0; i < staff.length; i++)

System.out.printIn(staff[i]);

System.out.printin(‘\n’);

//Save all employee records to the file employee.dat

PrintWriter out = new PrintWriter(

new FileWriter(*employee.dat'));

writeData(staff, out);

out.close();

//Retrieve all records into a new array

BufferedReader in = new BufferedReader(

new FileReader(“employee.dat"));

Employee[] newStaff = readData(in);

in.close();

System.out.printin(*Print the newly

read employee records:");

for (int i=0; i < newStaff.length; i++)

Trang 3

Chuong 4: So luge vé ludng va co sd dif liu

Veatch

public static void main(String[] args)

static void writeData(Employee[] ee, PrintWriter out)

throws IOException

{

out.printin(ee.length);

for (int i=0; i < ee.length; i++) ee[i].writeData(out);

Wistatic void writeData

static Employee[] readData(BufferedReader in)

throws IOException

{

int n = Integer.parselnt(in.readLine());

Employee[] ee = new Employee[n);

for (int i=0; i <n; i++) ,

static Employee[] readData

)//public class DataFile1

Trang 4

public Employee(String n, double s,

int year, int month, int day)

{

name = n;

salary = S;

GregorianCalendar calendar

= new GregorianCalendar(year, month-1, day);

// GregorianCalendar uses 0 = January

Trang 5

Chương 4: Sơ lược về luồng và cơ sở dữ liệu

Trang 6

Chương 4: Sơ lược về luồng và cơ sở dữ liệu + (calendar.get(Calendar.MONTH) + 1) + '!'

V//public void readData

private String name;

private double salary;

private Date hireDay;

V/class Employee

Két qua thuc thi chuong trinh DataFilel.java:

Print the employee records:

Employee[name=Cracker,salary=75000.0,hireDay=Tue Dec 15 00:00:00 CET

1987]

Trang 7

Chương 4: Sơ lược về luồng và cơ sở dữ liệu 77 M° Employee{name=Hacker,salary=50000.0, hireDay=Sun Oct 01 00:00:00 CEST

1989]

Employee[name=Tester,salary=40000.0,hireDay=Thu Mar 15 00:00:00 CET

1990]

Print the newly read employee records:

Employee[name=Cracker,salary=76000.0,hireDay=Tue Dec 15 00:00:00 CET

Trang 8

staff[1] = new Employee("Hacker* , 50000,1989, 10, 1);

staff[2] = new Employee("Tester’ , 40000,1990, 3, 15);

try

{

System.out.printin("Print the employee records:");

for (int i=0; i < staff.length; i++)

System.out.printIn(staff[i]);

System.out.println(n");

//Save all employee records to the file employee.dat

ObjectOutputStream out = new ObjectOutputStream(

new FileOutputStream("employee.dat'));

out.writeObject(staff);

out.close();

//Retrieve all records into a new array

ObjectInputStream in = new ObjectinputStream(

new FileInputStream(“employee.dat"));

Employee[] newStaff = (Employee[])in.readObject();

in.close();

Trang 9

Chuong 4: So luge vé luéng và cơ sở dữ liệu

System.out.printin(“Print the newly read

Vipublic static void main(String[] args)

\/public class DataFile2

class Employee implements Serializable

{

public Employee() {}

public Employee(String n, double s, int year,

int month, int day)

Trang 10

M 80 Chương 4: Sơ lược về luồng và cơ sở dữ liệu // GregorianCalendar uses 0 = January

Trang 11

Chương 4: Sơ lược về luồng và cơ sở dữ liệu

private String name;

private double salary;

private Date hireDay;

V//class Employee implements Serializable

class Manager extends Employee

{

public Manager(String n, double s, int year,

int month, int day)

double baseSalary =super.getSalary();

return baseSalary + bonus;

Trang 12

M' s Chương 4: Sơ lược về luỗng và cơ sở dữ liệu )

private double bonus;

\//class Manager extends Employee

Két qua thuc thi chuong trinh DataFile2 java:

Print the employee records:

Manager[name=Cracker,salary=80000.0,hireDay=Tue Dec 15 00:00:00 CET 1987][bonus=5000.0]

Employee[name=Hacker,salary=50000.0,hireDay=Sun Oct 01 00:00:00 CEST

Trang 13

Chương 4: Sơ lược về luồng và cơ sở dữ liệu 83 MỊI° Manager[name=Cracker,salary=80000.0,hireDay=Tue Dec 15 00:00:00 CET

Employee harry = new Employee("Hacker" , 50000,1989, 10, 1);

Manager boss = new Manager("0racker", 80000,1987, 12, 15);

Trang 14

Qu? 84 Chương 4: Sơ lược về luỗng và cơ sở dữ liệu

for (int i=0; i < staff.length; i++)

System.out.printIn(staff[i]);

System.out.printlnft);

//Save all employee records to the file employee.dat

ObjectOutputStream out = new ObjectOutputStream(

new FileOutputStream ("employee.dat"));

out.writeObject(staff);

out.close();

//Retrieve all records into a new array

ObjectInputStream in = new ObjectinputStream(

System.out.printin("Print the newly

read employee records:”);

for (int i=0; i < newStaff.length; i++)

System.out.printin(newStaff[i]);

)/ty

catch(Exception e)

Trang 15

Chương 4: Sơ lược về luồng và cơ sở dữ liệu 85 MP?

{

e.printStackTrace();

//catch

//public static void main(String[] args)

V/public class DataFile3

class Employee implements Serializable

Trang 16

[MỊ? ss Chương 4: Sơ lược về luồng và cơ sở dữ liệu

private String name;

private double salary;

Trang 17

Chương 4: Sơ lược về luồng và cơ sở dữ liệu

private Date hireDay;

class Employee implements Serializable

class Manager extends Employee

private Employee secretary;

Vclass Manager extends Employee

Trang 18

M' 88 Chương 4: So lược về luồng và cơ sở dữ liệu

Kết quả thực thi chương trinh DataFile3 java:

Print the employee records:

Manager[name=Cracker,salary=80000.0,hireDay=Tue Dec 15 00:00:00 CET 1987][secretary=Employee[name=Hacker,salary=50000.0,hireDay=Sun Oct 01

Print the newly read employee records:

Manager[name=Cracker,salary=80000.0,hireDay=Tue Dec 15 00:00:00 CET 1987][secretary=-Employee[name=Hacker,salary=55000.0,hireDay=Sun Oct 01

Trang 19

Chương 5ð: Các phương thức đọc và ghỉ 89 M

5.1 Các phương thức đọc các dữ liệu nhập

- Phương thức readBooleøn() đọc một giá trị kiểu boolean, giá

trị này được biểu dién trong mét byte Nếu byte này là 0 thì giá trị tương ứng là false, néu byte nay khdc 0 thì giá trị tương ứng là

true Giá trị trả về của phương thức readBoolean() 1a gid tri nhi phân đọc được, nghĩa là false hodc true

Cú pháp của phương thức là:

public final boolean readBoolean() throws I0Exception

- Phương thức readByie() đọc một byte va cé giá trị trả về là byte đọc được

Cú pháp của phương thức là:

public final byte readByte() throws I0Exception

- Phương thức readUnsignedByte() đọc một byte và có giá trị

trả về là số nguyên ¿m£ đọc được; 24 bit cao của số nguyên int nay đều bằng 0, vậy số nguyên im này là số dương

Cú pháp của phương thức là:

public final int readUnsignedByte() throws I0Exception

- Phương thức readChar( đọc một ký tự Unicode 16 bit va cé

giá trị trả về là ký tự đọc được:

Cú pháp của phương thức là:

public final char readChar() throws IOException

- Phuong thite readFully() dye một số byte mong muốn

Cú pháp của phương thức là:

Trang 20

QAP 20 Chương 5: Các phương thức đọc và ghi

public final void

readFully(byte[] buffer) throws IOException

public final void

readFully(byte[] buffer, int offset, int count)

throws IOException

- Phuong thtic readDouble() doc mét double có 64 bit và có

gid tri tra vé 14 double doc duge

Cú pháp của phương thức là:

public final double readDouble() throws IOException

- Phuong thie readFloat() doc mét float cé 32 bit và có giá trị

tra vé 1a float doc duge

Cú pháp của phương thức là:

public final float readFloat() throws IOException

- Phuong thie readInt() doc mét sé nguyén kiéu int c6 32 bit

và có giá trị trả về là số nguyên ¿m đọc được

Cú pháp của phương thức là:

public final int readint() throws IOException

- Phuong thtic readLong() doc mét sé nguyén kiéu long c6 64 bit và có giá trị trả về là số nguyên /ong đọc được

Cú pháp của phương thức là:

public final long readLong() throws IOException

- Phương thức reœdShort() đọc mét sé nguyén kiéu short cé

16 bit và có giá trị trả về la sO nguyén short doc được

Cú pháp của phương thức là:

public final short readShort() throws IOException

- Phương thức readŨnsignedShortQ đọc 16 bit và có giá trị

trả về là số nguyên ¿n¿ đọc được; 16 bit cao của số nguyên ¿n này

đều bằng 0, vay int này là số dương.

Trang 21

Chwong 5: Các phương thức đọc và ghi a A?

Cú pháp của phương thức là:

public final int readUnsignedShort() throws IOException

- Phương thức reødLine() đọc một chuỗi byte mà chữ cuối là

ký tự xuống hàng và có giá trị trả về là một chuỗi; đó là chuỗi các

byte đọc được, không có ký tự xuống hàng Nếu không có by£e nào

đọc được, thi gid tri tra vé 1a null

Cú pháp của phương thức là:

public final String readLine() throws I0Exception

- Phương thức reedUTF() đọc một chuỗi ký tự Unicode trong luéng nhap di liệu và có giá trị trả về là chuỗi ký tự đọc được, UDF là viết tắt của Unicode Transfer Format Nếu không có ký tự nào đọc được, thì giá trị trả vé 1a null

Cú pháp của phương thức là:

public final String readUTF() throws IOException

- Phương thức:

final int read(byte[] buffer) throws IOException

viết toàn bộ by/e từ luỗng nhập vào vùng dém byte array buffer

Giá trị trả về là số by£e đọc được Nếu không có byfe nào đọc được,

thì giá trị trả về là -1

- Phương thức:

public final int read (byte[] buffer,int offset, int count)

throws IOException

viết count số by£e từ luồng nhập vào vùng dém byte array buffer,

bat dau tit vi tri offset Gia tri tra vé 1a 86 byte doc duge Néu không có byte nao đọc được, thì giá trị trả về là -1

- Phương thức available() ding để xác định số lượng byíe của một tệp đã nhập; khi cée byte được đọc trên luồng nhập, số lượng

byte sẽ giảm tương ứng

Trang 22

92 Chương ð: Các phương thức đọc và ghi

- Phương thức uoid ciose() dùng để đóng các luồng nhập hoặc xuất; nếu ta vẫn đọc hoặc ghi, thì ngoại lệ 7OException sẽ xuất

hiện

- Phương thức s&ipBy£es() dùng để bỏ qua một sé byte mong

muốn và giá trị trả về là số byfe bị bỏ qua

Cú pháp của phương thức là:

int skipBytes(int count) throws IOException

S6 byte bi bé qua bang véi count, kiéu int

- Phuong thtic skip() ding dé bd qua mét sé byte mong muén

và giá tri tra vé 14 sé byte bi bé qua

Cú pháp của phương thức là:

long skipBytes(long count) throws IOException

Số byte bi bé qua bằng véi count, kiéu long

Trang 23

Chương 5: Cac phuong thiic doc va ghi 93 (pal

file_in = new FilelnputStream(args{0]);

data_in = new DatalnputStream(file_in);

Trang 25

Chương 5: Các phương thức đọc và ghỉ os f°

5.2 Các phương thức viết các dữ liệu xuất

- Phương thức wri£eBoolean() viết một giá trị val cha một

boolean, dt liéu xudt (output) 14 mot byte; val 1a false néu byte nay

la 0, val 1a true néu byte 1a 1

Cú pháp của phương thức là:

void writeBoolean(boolean val) throws IOException

- Phương thức writeByte() viét một byte, dit ligu xuat (output)

1a mét byte, gid trị của byte nay 1a byte thấp nhất của số nguyên

val

Cú pháp của phương thức là:

void writeByte(int val) throws IOException

- Phương thức writeBytes() viết một chuỗi by¿e, dữ liệu xuất

(output) là một chuỗi byíe, giá trị cia moi byte nay 1a byte thap

của mỗi mã Unicode 16 bit của chuỗi sứr

Cú pháp của phương thức là:

void writeBytes(String str) throws 10Exception

- Phương thie writeChar() viét mot ky tu Unicode 16 bit, dữ

liệu xuất (output) là 16 bit thấp của sé nguyén val

Cú pháp của phương thức là:

void writeChar(int val) throws IOException

- Phương thức writeChars() viết một chuỗi ký tự Unicode

Cú pháp của phương thức là:

void writeChars(String str) throws IOException

- Phương thtic writeDouble() viét một double cé 64 bit

Cú pháp của phương thức là:

void writeDouble(double val) throws IOException

- Phuong thie writeFloat() viết một floa‡ có 32 bit

ile as

Trang 26

96 Chuong 5: Cac phuong thtic doc va ghi

Cú pháp của phương thức là:

void writeFloat(float val) throws IOException

- Phuong thức :øriteÏn£() viết một số nguyên kiéu int có 33

Cú pháp của phương thức là:

void writelnt(int val) throws IDException

- Phương thức rieLongQ viết một số nguyên kiểu long có

64 bit

Cú pháp của phương thức là:

void writeLong(long val) throws IOException

- Phương thức œri£eShort(Q viết một số nguyên kiểu short có

16 bit, như vậy chỉ có 16 bit thấp của số nguyên val dude viét

Cú pháp của phương thức là:

void writeShort(int val) throws IOException

- Phuong thtic writeUTF() viết một chuỗi ký tự Unicode

Cú pháp của phương thức là:

void writeUTF(String str) throws IOException

- Phương thitc void flush() két thúc xuất và xóa vùng đệm

- Phương thức:

void write(int oneByte) throws IOException

viết 8 bit cấp thấp nhất của số nguyên oneByte vào luỗng xuất

- Phương thức:

void write(byte[] buffer) throws IOException

viét toan bé byte cia ving dém byte array buffer vao luéng xuat

- Phương thức:

void write(byte[] buffer,int offset, int count)

Trang 27

Chuang 5: Céc phuong thiic doc va ghi s7 [MỸ

void write(int ch) throws IOException

viết 16 bit cấp thấp nhất của ch vào luồng xuất

- Phương thức:

void write(char[] charArray)

viết toàn bộ mảng ký tự cbarArray vào luồng xuất

- Phương thức:

void write(char[] charArray, int offset, int count)

viét count ky ty từ mảng ký tự charArray bắt dau tu vi tri offset, vào luồng xuất

- Phương thức:

void write(String str)

viết chuỗi sứr vào luồng xuất

- Phương thức:

void write(String str, int offset, int count)

viết chudi count ky ty tit chudi str, bắt đầu từ vị tri offset, vao luéng xuat

Trang 28

file_out = new FileOutputStream(args[0]);

data_out = new DataOutputStream(file_out);

Trang 29

Chương ð: Các phương thức đọc và ghi 99 rg

data_out.writelnt(678);

c:\javawork>javac Output java

c:\javawork>java Output! Output txt

ta có tệp Ou£pu£1.txt (đọc bởi Word 98 & VNI):

Trang 30

file_in = new FilelnputStream(args[0]);

data_in = new DatalnputStream(file_in);

Trang 31

Chương 5ð: Các phương thức đọc va ghi

c:\javawork>java Output2 Output txt>Output2.txt

ta cé tép Output2.txt (doc bởi Word 98 & VND:

Trang 32

Chương ð: Các phương thức đọc va ghi

Và ta tìm lại các đữ liệu trong chuong trinh Outputl java

Trang 33

Chương 6: Các phương thức về số nguyên kiểu int hoặc kiểu long 103 ga?

public double doubleValue()

có giá trị trả về là double, bằng cách ép kiểu giá tri int cua déi

tượng thành giá trị double

- Phương thức:

public float floatValue()

có giá trị tra va 1a float, bing cach ép kiểu giá tri int cha doi

tượng thành gia tri float

- Phương thức:

public int intValue()

có giá trị trả vé 1a int, bằng cách ép kiểu giá trị của đối tượng

thanh gid tri int

- Phương thức:

public long longValue()

có giá trị trả về là long, bằng cách ép kiéu gid tri int cha đối tượng

thành giá trị ong

Ví dụ:

Integer iobjet = new Integer(1234567890);

double d = iobjet.doubleValue();

Trang 34

PA? 104 Chương 6: Các phương thức về số nguyên kiểu int hoặc kiểu long float f = iobjet.floatValue();

int i = jobjet.intValue();

long L = iobjet.longValue();

6.1.2 Đối tượng Integer

- Su tao dung (constructor) Integer() tao dung đối tượng Integer tit mét int hay mét chudi

- Sự tạo đựng:

public Integer(int val)

tạo dựng đối tượng Integer bang tri sé val

- Sự tạo dung:

public Integer(String str) throws NumberFormatException

tạo dựng đối tượng Infeger bằng biểu diễn dạng chuỗi (string

Tepresentation) của số nguyên thập phân (cơ số 10)

Ví dụ:

Integer a = new Integer(123); // using integer

Integer b = new Integer(“123”); // using string

Ghỉ chú:

Các thé hién (instance) cia lép Integer khong thé ding trong các phép tính số học Vi du:

Integer ¡1 = new Integer(1);

Integer i2 = new Integer(2);

int i3 = i1 + i2; // illegal

int i3 = ¡1.intValue() + i2.intValue();

6.1.3 Các phương thức chuyển đổi kiểu

- Phương thức uaiueOƒft) xây dựng một đối tượng Integer bing

cách dùng sự biểu diễn dạng chuỗi của nó,

Trang 35

Chương 6: Các phương thức về số nguyên kiểu int hoặc kiểu long 105 ae

Integer i1 = Integer valueOf(str),// parse number in radix 10

Integer i2 = Integer valueOf(str,46// parse number in radix 16

Trang 36

° 106 Chương 6: Các phương thức về số nguyên kiểu int hoặc kiểu long

- Phương thức £oSiring() xây dựng sự biểu diễn dạng chuỗi của một số nguyên ¿m hay một đối tượng Infeger

Cú pháp của phương thức là:

public String toString()

public static String toString(int num)

public static String toString(int num, int radix)

Phuong thtte public String toString0 có giá trị trả về là sự biểu diễn dạng chuỗi của giá trị im của một đối tugng Integer

Phương thtic public static String toString(int num) cé gia tri

trả về là sự biểu diễn dạng chuỗi của số nguyén num

Phuong thc public static String toString(int num, int radix)

có giá trị trả về là sự biểu diễn dang chuỗi của số nguyên nưm với

co sé radix.

Trang 37

Chương 6: Các phương thức về số nguyên kiểu int hoặc kiểu long 107 MỊ?

Ví dụ:

Integer num = new Integer(25);

String str1 = num.toString(); // from Integer objet

String str2 = Integer.toString(25); // from radix 10 int

String str3 = Integer.toString(25,8); // from octal int

String str4 = “The three numbers are “ + str1 +“, “+ str2 +”, “+ str3; Xét chương trinh Int1 java:

int octNum = Integer.parselnt('025”,8);

System.out.printin("i: " + i + *, octNum: * + octNum);

Integer i1 = Integer.valueOf(str);

Trang 38

IMỊ

108 Chương 6: Các phương thức về số nguyên kiểu int hoặc kiểu long Integer i2 = Integer.valueOf(str, 8);

i1: 123456, i2: 42798, i3: 1193046

str6: The three numbers are 123456, 123456, 11110001001000000, 361100,

1e240

Trang 39

Chương 6: Các phương thức về số nguyên kiéu int hoặc kiểu long 109

- Phương thức /oBinarySiring() xây dựng sự biểu diễn nhị phân của một số nguyên irứ

Cú pháp của phương thức là:

public static String toBinaryString(int num)

Phương thức này không tương đương với toString(num, 2), vi

toString(num, 2) xử lý num như một số nguyên có dấu Nếu nưm

là một số âm thì toString() xt ly trị số tuyệt đối của nưmvà thêm dấu — vào sự biểu diễn nhị phân

- Phương thức foHexString0 xây dựng dạng biểu điễn thập

lục phân (hexadecimal string representation) của một số nguyên int

Cú pháp của phương thức là:

public static String toHexString(int num)

Phương thức này không tương đương với toString(num, 16),

vi toString(num, 16) xử lý num như một số nguyên có dấu Nếu num là một số âm thì £oString0 xử lý trị số tuyệt đối của numvà thêm dấu — vào dạng biểu diễn thập lục phân

- Phương thức toOctalString0 xây dựng dạng biểu diễn bát phân (octal string representation) của một số nguyên in

Cú pháp của phương thức là:

public static String toOctalString(int num)

Phương thức này không tương đương với toString(nưm, 8), vì

toString(num, 2) xử lý num như một số nguyên có đấu Nếu nưm

là một số âm thi toString() xt lý trị số tuyệt đối của num va them dấu - vào dạng biểu diễn bát phân

- Phương thức equdis() kiểm tra sự bằng nhau của hai đối

tượng

Cú pháp của phương thức là:

Public boolean equals(Objet obj)

Trang 40

MP: 10_ Chương 6: Các phương thức về số nguyên kiểu int hoặc kiểu long Lénh il.equals(i2) c6 gid tri tra vé 1A true (hoae false) néu

hai đối tượng ¿1, ¿2 bằng nhau (hoặc khác nhau)

Ví dụ:

Integer ¡1 = new Integer(1);

Integer i1 = new Integer(1);

Ngày đăng: 18/10/2022, 20:58

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[3] Cay S. HORSTMANN, Big JAVA , Wiley 2002 Sách, tạp chí
Tiêu đề: Big JAVA
Tác giả: Cay S. HORSTMANN
Nhà XB: Wiley
Năm: 2002
[6] Dori SMITH, JAVA 2 for the World Wide Web, Peachpit Press 2002 Sách, tạp chí
Tiêu đề: JAVA 2 for the World Wide Web
Tác giả: Dori SMITH
Nhà XB: Peachpit Press
Năm: 2002
[1] Cay S. HORSTMANN and Gary CORNELL, Core JAVA 2, volume I — Fundamentals, SUN Microsystems Press 2001 Khác
[2] Cay S. HORSTMANN and Gary CORNELL, Core JAVA 2, volume II — Advanced Features, SUN Microsystems Press 2000 Khác
[4] Ivor HORTON, Beginning JAVA 2, WROX Press 2000 Khác
[5] Martin KALIN, Object-oriented programming in JAVA, Prentice Hall 2001 Khác
w