数据流:
与机器无关的操作Java的基本数据类型
好处:
与机器底层无关,根据java字节大小进行读写
DataInputStream:
数据输入流允许应用程序以与机器无关方式从底层输入流中读取基本Java数据类型。应用程序可以使用数据输出流写入稍后有数据输入流读取的数据。DateInputStream对于多线程访问不一定是安全的。线程安全是可选的,它由此类方法的使用者负责。
DataOutputStream:
数据输出流允许应用程序以适当方式将基本Java数据类型写入输出流中。然后,应用程序可以使用数据输入流将数据读入。
代码示例:
package com.lemon;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
/**
* 数据流
* 与机器无关的操作Java的基本数据类型
* 好处:
* 与机器底层无关,根据java字节大小进行读写
* @author lemonSun
*
* 2019年5月5日下午10:10:36
*/
public class DataStreamDemo {
public static void main(String[] args) {
//write();
read();
}
private static void read() {
File file = new File("F:\\javatest\\DataStream.dat");
try {
//输出流
InputStream in = new FileInputStream(file);
//缓冲流
BufferedInputStream bis = new BufferedInputStream(in);
//数据流
DataInputStream dis = new DataInputStream(bis);
int num = dis.readInt(); //写入4个字节
byte b = dis.readByte();//写入1个字节
String c = dis.readUTF();//写入五个字节
System.out.println("num:" + num + "\n" + "byte:" + b + "\n" + "c:" + c);
dis.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
private static void write() {
File file = new File("F:\\javatest\\DataStream.dat");
try {
//输出流
OutputStream out = new FileOutputStream(file);
//缓冲流
BufferedOutputStream bos = new BufferedOutputStream(out);
//数据流
DataOutputStream dos = new DataOutputStream(bos);
dos.writeInt(10); //写入4个字节
dos.writeByte(10);//写入1个字节
dos.writeUTF("中");//写入五个字节 可变长度UTF
dos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}