Thứ Bảy, 28 tháng 3, 2015

Bài 36(Java):Đọc và ghi dữ liệu nhị phân dùng luồng byte trong Java

byte-stream
​Ở bài trước chúng ta đã đọc và ghi các bytes dữ liệu là các ký tự mã ASCII. Để đọc và ghi những giá trị nhị phân của các kiểu dữ liệu trong java, chúng ta sử dụng DataInputStream và DataOutputStream.

1, DataOutputStream:

Dùng để hiện thực interface DataOuput.
Interface DataOutput có các phương thức cho phép ghi tất cả những kiểu dữ liệu cơ sở của java đến luồng (theo định dạng nhị phân).


Untitled1

Contructor: DataOutputStream(OutputStream outputStream)
OutputStream: là luồng xuất dữ liệu. Để ghi dữ liệu ra file thì đối tượng outputStream có thể là FileOutputStream.

2, DataInputStream:

Dùng để hiện thực interface DataInput.
Interface DataInput có các phương thức cho phép đọc tất cả những kiểu dữ liệu cơ sở của java (theo định dạng nhị phân).

Untitled2

Contructor: DataInputStream(InputStream inputStream)
InputStream: là luồng nhập dữ liệu. Để đọ dữ liệu từ file thì đối tượng InputStream có thể là FileInputStream.​

Ví dụ: Dùng DataOutputStream và DataInputStream để ghi và đọc những kiểu dữ liệu khác nhau trên file.
*** Chú ý: Trong ví dụ dưới mình bổ sung thêm cách đọc và ghi chuỗi nữa nhé! (writeUTF và readUTF)
PHP:
package javaandroidvn;
 
import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;

class 
JavaAndroidVn {

    public static 
void main(String args[]) throws IOException {

        
DataOutputStream dataOut;
        
DataInputStream dataIn;
        
int i 2013;
        
double d 3.14;
        
boolean b true;
        
char ch 'A';
        
String str "Android.Vn";

        try {
            
dataOut = new DataOutputStream(new FileOutputStream("E:\\androidvn.dat"));
        } catch (
IOException exc) {
            
System.out.println("Cannot open file.");
            return;
        }

        try {
            
System.out.println("Writing Int: " i);
            
dataOut.writeInt(i);
            
System.out.println("Writing Double: " d);
            
dataOut.writeDouble(d);
            
System.out.println("Writing boolean: " b);
            
dataOut.writeBoolean(b);
            
System.out.println("Writing Double: " 12.2 7.4);
            
dataOut.writeDouble(12.2 7.4);
            
System.out.println("Writing char: " ch);
            
dataOut.writeChar(ch);
            
System.out.println("Writing String: " str);
            
dataOut.writeUTF(str);
        } catch (
IOException exc) {
            
System.out.println("Write error.");
        }

        
dataOut.close();
        
System.out.println();
 
// Next, read and show them from file

        
try {
            
dataIn = new DataInputStream(
                    new 
FileInputStream("E:\\androidvn.dat"));
        } catch (
IOException exc) {
            
System.out.println("Cannot open file.");
            return;
        }


        try {
            
dataIn.readInt();
            
System.out.println("Reading Int: " i);
            
dataIn.readDouble();
            
System.out.println("Reading Boolean: " d);
            
dataIn.readBoolean();
            
System.out.println("Reading Double: " b);
            
dataIn.readDouble();
            
System.out.println("Reading Double: " d);
            
ch dataIn.readChar();
            
System.out.println("Reading char: " ch);
            
str dataIn.readUTF();
            
System.out.println("Reading String: " str);
        } catch (
IOException exc) {
            
System.out.println("Read error.");
        }
        
dataIn.close();
    }
}

Không có nhận xét nào:

Đăng nhận xét