本文已参与「新人创作礼」活动,一起开启掘金创作之路。
练习:
public static void main(String[] args) throws IOException {
FileOutputStream fos1 = new FileOutputStream("E:\\test\\abc.txt");
FileOutputStream fos2 = new FileOutputStream(new File("E:\\test\\abc.txt"));
// 写入单个字节
fos1.write(97);
// 写入字节数组
byte[] bytesArray = "你好".getBytes();
System.out.println(Arrays.toString(bytesArray)); // [-28, -67, -96, -27, -91, -67]
fos2.write(bytesArray);
// 释放资源
fos1.close();
fos2.close();
}
1.2 字节输入流(InputStream)
简述:java.io.InputStream 抽象类是表示字节输入流的所有类的父类(超类),可以读取字节信息到内存中。
字节输出流的基本共性功能方法:
public void close() // 关闭此输入流并释放与此流相关联的任何系统资源。
public abstract int read() // 从输入流读取数据的下一个字节。
public int read(byte[] b) // 从输入流中读取一些字节数,并将它们存储到字节数组 b中
FileIntputStream
简述:java.io.FileInputStream类是文件输入流,从文件中读取字节。
使用步骤:
- 创建FileInputStream对象,构造方法中传入要读取的数据源文件
- 使用FileInputStream对象中的方法read,读取文件
- 释放资源
练习:
# 文件的复制
FileInputStream fis = new FileInputStream("E:\\test\\a\\1.jpg");
FileOutputStream fos = new FileOutputStream("E:\\test\\b\\1.jpg");
int len = 0;
byte[] bytes = new byte[1024];
while ((len = fis.read(bytes)) != -1) {
fos.write(bytes, 0, len);
}
// 释放资源
fos.close();
fis.close();
第二章:字符流
简述:当使用字节流读取文本文件时,可能会有一个小问题。就是遇到中文字符时,可能不会显示完整的字符,因为一个中文字符占用多个字节存储(GBK占用两个字节,UTF-8占用三个字节)。所以JAVA提供了字符流类,以字符为单位读写数据,专门用于处理文本文件。
1.1 字符输入流(Reader)
简述:java.io.Reader抽象类是字符流最顶层的父类(超类),可以读取字符信息到内存中。
继续