字节流
字节流的结构
字节的输入流:InputStream
字节的输出流:OutputStream
InputStream和OutputStream都是抽象类
输入流的方法:read、close、available,这些方法主要是为了读取数据,关闭IO流,计算文件的大小
输出流的方法:write、close、flush,这些方法主要是为了写数据,关闭IO流,刷新缓存
掌握IO流的用法
文件拷贝:
(1)选择使用什么类型的流(字节流,字符流)
(2)文件拷贝是一种二进制流,拷贝的过程通过读取字节完成拷贝工作
(3)选择字节流
/*
* 拷贝文件
*/
@Test
public void m10() throws IOException{
File srcFile = new File("D:\\学习视频\\课堂讲义.docx");
File dirFile = new File("D:\\File\\Test\\课堂讲义.docx");
InputStream is = new FileInputStream(srcFile);//创建InputStream
OutputStream os = new FileOutputStream(dirFile);//创建OutputStream
byte[] b = new byte[1024];//创建缓存区
int i = -1;//判断是否读取源文件结束
while((i = is.read(b)) != -1){
os.write(b,0,i);//从缓存中0开始输出,到i结束
}
is.close();
os.flush();
os.close();
}
字符流
字符流的结构
输入流:Reader,抽象类
输出流:Writer,抽象类
读取数据时通过read
写数据时通过write
读取文件中的内容
读取txt文件中的内容并输出到控制台—-读文件内容使用Reader,写入控制台用System.out.println();
/*
* 读取txt文件中的内容并输出到控制台
*/
@Test
public void m11() throws IOException{
File srFile = new File("D:\\File\\Test\\test.txt");
Reader reader = new FileReader(srFile);//创建Reader
char[] c = new char[1024];//存储读取到字符
int i = -1;//标志读取源文件结束
while((i = reader.read(c)) != -1){
System.out.println(c);
}
reader.close();
}
* 读取文件中的内容—-采用缓冲流完成文件读取*
/*
* 读取文件中的内容----采用缓冲流完成文件读取
*/
@Test
public void m12() throws IOException{
File srFile = new File("D:\\File\\Test\\test.txt");
Reader reader = new FileReader(srFile);//创建Reader
BufferedReader br = new BufferedReader(reader);//构建缓冲流
String content = null;//获取读取内容,标明结束
while((content = br.readLine()) != null){
System.out.println(content);
}
br.close();
}
写内容到文件中
/*
* 读取文件中的内容并写入到word文档中
*/
@Test
public void m13() throws IOException{
File srcFile = new File("D:\\File\\Test\\test.txt");
File dirFile = new File("D:\\File\\Test\\test.doc");
Reader reader = new FileReader(srcFile);
Writer writer = new FileWriter(dirFile);
BufferedReader br = new BufferedReader(reader);
BufferedWriter bw = new BufferedWriter(writer);
String content = null;
while((content = br.readLine()) != null){
bw.write(content +"\b\n");
/*bw.newLine();//行分隔符*/
}
br.close();
bw.flush();
bw.close();
}
请关注“知了堂学习社区”,地址:http://www.zhiliaotang.com/portal.php