IO流
分类
1byte = 8 bit
一切皆为字节:字节流可以读取任意格式的文件
字节输出流
OutputStream:字节输出流
FileOutputStream:文件字节输出流
将数据从内存写到硬盘中
使用
存储原理
字节输出流写多个字节的方法
write有两个重载的方法
在urf-8中,一个中文字符占三个字节,在gbk编码中,一个中文字符占两个字节
写字节数组的一部分
写入字符串的方法
续写与换行
续写
换行
下图中的错误
"\r\n".getBytes()
字节输入流
InputStream:字节输入流,此抽象类是表示字节输入流的所有类的超类
FileInputStream:文件字节输入流
读取数据
注意将其赋值给变量 len
错误写法
在while条件中已经将指针移动了,在循环体中再次调用就会使指针再次移动,导致错误,所以用一个变量存储读取到的字节数据。
一次读取一个字节读取原理
字节输入流一次读取多个字节
第一种方法
第二种方法 不知道长度使用while循环简化代码
读取多个字节的原理
练习:文件复制
package FileInputStreamTest;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Arrays;
public class FileCopyMain {
public static void main(String[] args) throws IOException {
FileInputStream fis = new FileInputStream("C:\\Users\\hpuzjh\\Desktop\\1.jpg");
FileOutputStream fos = new FileOutputStream("C:\\Users\\hpuzjh\\Desktop\\2.jpg");
int len = 0;
byte[] bytes = new byte[1024];
while ((len = fis.read(bytes))!=-1){
fos.write(bytes,0,len);
}
// 注意先关闭输出流
fos.close();
fis.close();
}
}