二进制文件的读写
写操作:
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());
}
}
}