DataInputStream和DataOutputStream,是用来读写基本数据类型的,而且,读写顺序要一致。
测试代码:
package com.io;
import java.io.Closeable;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import junit.framework.TestCase;
import static java.lang.System.out;
public class TestDataStream extends TestCase {
private static final String FILE_PATH = "C:/TestDataStream.txt";
private static final String STR = "hello";
public void testDataOutputStream() {
DataOutputStream dos = null;
FileOutputStream fos = null;
try {
fos = new FileOutputStream(FILE_PATH);
dos = new DataOutputStream(fos);
dos.writeInt(1);
dos.writeChar('c');
dos.writeChars(STR);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
close(dos);
close(fos);
}
}
public void testDataInputStream() {
DataInputStream dis = null;
FileInputStream fis = null;
try {
fis = new FileInputStream(FILE_PATH);
dis = new DataInputStream(fis);
out.println(dis.readInt());
out.println(dis.readChar());
for (int i = 0; i < STR.length(); i++) {
out.print(dis.readChar());
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
close(dis);
close(fis);
}
}
private void close(Closeable closeable) {
if (closeable != null) {
try {
closeable.close();
closeable = null;
} catch (IOException e) {
e.printStackTrace();
}
}
}
}