java中關於二進位制檔案的讀寫[二進位制檔案讀寫]
二進位制檔案的讀寫
寫操作:
import java.io.*;
public class A {
public static void main(String args[]) {
FileOutputStream out;
DataOutputStream dos;
try {
out = new FileOutputStream("a.dat");
dos = new DataOutputStream(out);
dos.writeDouble(3);
dos.writeDouble(4);
dos.writeDouble(5);
dos.close();
} catch (Exception e) {
System.out.println(e.toString());
}
}
}
附註:當a.dat檔案不存在的時候,系統將建立a.dat,當a.dat檔案存在時,將會建立一個a.da檔案覆蓋原來的檔案
讀操作
import java.io.*;
public class B {
public static void main(String args[]) {
FileInputStream in;
DataInputStream dis;
try {
in = new FileInputStream("a.dat");
dis = new DataInputStream(in);
while (dis.available() != 0
System.out.println(dis.readDouble());
}
dis.close();
} catch (Exception e) {
System.out.println(e.toString());
}
}
}
讀入和寫入一個字元 只修要修改相應的為:
dos.writeChar('A');和System.out.println(dis.readChar());即可
讀入和寫入一個整數(32位) 只修要修改相應的為:
dos.writeInt(12);和System.out.println(dis.readInt());
具體的方法參見API的DataInputStream和DataOutputStream
附:二進位制檔案之間的複製
import java.io.*;
public class C {
public static void main(String args[]) {
int n;
FileInputStream fin;
FileOutputStream fout;
try {
fin = new FileInputStream("a.dat");
fout = new FileOutputStream("b.dat");
do {
n = fin.read();
if (n != -1) {
fout.write(n);
}
} while (n != -1);
fin.close();
fout.close();
} catch (Exception e) {
System.out.println(e.toString());
}
}
}