DataInputStream
DataInputStream能以一种与机器无关(当前操作系统等)的方式,直接地从字节流读取Java基本数据类型和String类型的数据类型的数据,常用语网络传输(网络传输数据要求与平台无关)。
DataOutputStream写的文件,只能使用DataInputStream去读。并且去读的时候你需要提前知道写入的顺序,读写顺序一致才能正常取出数据
Constructor and Description |
创建使用指定的底层InputStream的DataInputStream。 |
Modifier and Type | Method and Description |
|
从包含的输入流中读取一些字节数,并将它们存储到缓冲区数组 |
|
从包含的输入流读取最多 |
|
见的总承包 |
|
见的总承包 |
|
见 |
|
见 |
|
见 |
|
见的总承包 |
|
见的总承包 |
|
见 |
|
见的总承包 |
|
见 |
|
见的总承包 |
|
见 |
|
见 |
|
从流 |
|
见 |
public class DataInputStreamTest01 {
public static void main(String[] args) {
DataInputStream dis = null;
try {
dis = new DataInputStream(new FileInputStream("..\\..\\java\\data"));
/*读出来是乱码行不通
byte[] bytes = new byte[1024];
int readCount = 0;
while ((readCount = dis.read(bytes)) != -1){
System.out.println(new String(bytes,0,readCount));
}
*/
System.out.println(dis.readByte());
System.out.println(dis.readShort());
System.out.println(dis.readInt());
System.out.println(dis.readLong());
System.out.println(dis.readFloat());
System.out.println(dis.readDouble());
System.out.println(dis.readBoolean());
System.out.println(dis.readChar());
} catch (IOException e) {
e.printStackTrace();
}finally {
if (dis != null){
try {
dis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
DataOutputStream
DataInputStream则可以直接将Java基本数据类型和String类型写入到其他字节输入流。
这个文件并不是普通文本文档(记事本打不开)
构造方法:
Modifier and Type | Field and Description |
|
到目前为止写入数据输出流的字节数。 |
常用方法:
Modifier and Type | Method and Description |
|
刷新此数据输出流。 |
|
返回计数器的当前值 |
|
写入 |
|
将指定的字节(参数 |
|
将 |
|
将 |
|
将字符串作为字节序列写入基础输出流。 |
|
将 |
|
将字符串写入底层输出流作为一系列字符。 |
|
双参数传递给转换 |
|
浮子参数的转换 |
|
将底层输出流写入 |
|
将 |
|
将 |
|
使用 modified UTF-8编码以机器无关的方式将字符串写入基础输出流。 |
public class DataOutputStreamTest01 {
public static void main(String[] args) {
//创建数据专属的字节输出流
DataOutputStream dos = null;
try {
dos = new DataOutputStream(new FileOutputStream("..\\..\\java\\data"));
//写
byte b = 97;
short s = 100;
int i = 300;
long l = 500;
float f = 9.0F;
double d = 3.14;
boolean sex = false;
char c = 'a';
dos.writeByte(b);
dos.writeShort(s);
dos.writeInt(i);
dos.writeLong(l);
dos.writeFloat(f);
dos.writeDouble(d);
dos.writeBoolean(sex);
dos.writeChar(c);
//刷新
dos.flush();
} catch (IOException e) {
e.printStackTrace();
}finally {
if (dos != null){
try {
dos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}