Java基础笔记28-字节流文件
- IO流中的字节流包含两大抽象类: InputStream 和 OutputStream 。
- InputStream
- 定义了IO流字节输入模式的抽象类
- 常用子类:FileInputStream
- 常用方法:read()
- OutputStream
- 定义了IO流字节输出模式的抽象类
- 常用子类:FileOutputStream
- 常用方法:write()
代码示例:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
public class ByteStreamDemo {
public static void main(String[] args) throws IOException {
inputStreamMethod();
}
/**
* 字节流写入方法 OutputStream
* @throws IOException
*/
public static void outputStreamMethod() throws IOException {
//创建File对象
File file = new File("E:/ssss.txt");
//字节流写入 OutputStream
OutputStream os = new FileOutputStream(file);
//write()方法写入数字,输出对应的ASCII值,超出ASCII表的数字无法显示
os.write(97);//a
//write(byte[] b)写入字符串,需要将字符串转换为字符数组才能正常显示
os.write("hello".getBytes());
// \r\n 换行
os.write("\r\n".getBytes());
os.write("world".getBytes());
os.write("你好".getBytes());
os.write(196);//a
//流使用完毕需要关闭
os.close();
}
/**
* 字节流读取 InputStream
* @throws IOException
*/
public static void inputStreamMethod() throws IOException {
//创建File对象
File file = new File("E:/ssss.txt");
//输入流InputStream
InputStream is = new FileInputStream(file);
//每次读一个字节
//int result = is.read();
//System.out.println(result);
//使用字符数组来读取自定义数量的信息,注意:使用字符数组读取时会出现覆盖问题。
byte[] bytes = new byte[1024];
//System.out.println(is.read(bytes));
while(is.read(bytes)!=-1) {
System.out.println(new String(bytes));
}
//关闭流
is.close();
}
}