1.文件字节流.Filereder和FileWriter介绍618
3.Filereader相关方法:6181)newFileReader(File/String)
2)read:每次读取单个字符,如果返回到文件末尾-1
3)read(char[]):批量读取多个字符到数组,返回读取的字符数,如果返回到文件末尾-1相关API:
1)newString(char[]):将char[]转换为String
2)newString(char[],off,len):将char[]的指定部分转换为String
4.FileWriter常用方法61881)newFileWriter(File/String):覆盖模式相当于第一端流动指针
2)newFileWriter(File/String,true):追加模式相当于尾端流动指针
3)write(int):写单个字符
4)write(char[]):写入指定数组
5)write(char[],off,len):写入指定数组的指定部分
6)write(string):写入整个字符串
7)write(string,off,len):写入字符串指定部分的指定部分
相关API:String类:toCharArray:将String转换为char[]
➢注意:
FileWriter使用后,必须关闭(close)或刷新(flush),否则不能写入指定文件!
5.Filereader和FileWriter应用案例6195.1Filereder字符输入流619使用Filereader从storystory.txt读取内容并显示
com中的代码.stulzl.fileread_.包中FileRead_package com.stulzl.fileread_;import org.junit.jupiter.api.Test;import javax.annotation.processing.SupportedAnnotationTypes;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;// FileReader 字符输入流 619//使用 FileReader 从 story.txt 读取内容,并显示public class FileRead_ { public static void main(String[] args) { } ///单字符读取文件 @Test public void readFile01(){ String filePath = "e:\\story.txt"; FileReader fileReader = null; int data = 0;///也用于存储read()的返回值 try { ///创建Filereder对象 fileReader = new FileReader(filePath); //循环读取,使用read读取单个字符 while((data = fileReader.read())!=-1){ System.out.print((char)data);//类型转换,因为data要求字符类型 } } catch (IOException e) { e.printStackTrace(); } finally { try { if(fileReader!=null) { fileReader.close(); } } catch (IOException e) { e.printStackTrace(); } } } ///用字符数组读取文件 @Test public void readFile02(){ System.out.println(第二种方式); String filePath = "e:\\story.txt"; FileReader fileReader = null; int readLen = 0;//也用于存储readad(buf)的返回值 char[] buf = new char[8]; try { ///创建Filereder对象 fileReader = new FileReader(filePath); //循环读取,使用read(buf), 返回的是实际读取的字符数 /如果返回-1, 说明到文件结束 while((readLen = fileReader.read(buf))!=-1){ System.out.print(new String(buf,0,readLen));///类型转换,因为data需要字符类型 } } catch (IOException e) { e.printStackTrace(); } finally { try { if(fileReader!=null) { fileReader.close(); } } catch (IOException e) { e.printStackTrace(); } } }}
5.2FileWrite字符输出流620使用FileWriter将“风雨后定见彩虹”写入noteter.注意txt文件中的细节
com中的代码.stulzl.filewrite_.包中FileWrite_package com.stulzl.filewrite_;import java.io.FileWriter;import java.io.IOException;///FileWrite字符输出 620//使用 FileWriter 将 “风雨过后,定见彩虹” 写入到 note.txt 文件中, 注意细节publiclicccic class FileWrite_ { public static void main(String[] args) { String filePath = "e:\\note.txt"; FileWriter fileWriter = null; char[] chars = {'a','b','c'}; try { fileWriter = new FileWriter(filePath); //write(int):写单个字符 fileWriter.write('h'); //write(char[]):写入指定数组 fileWriter.write(chars); //write(char[],off,len):写入指定数组的指定部分 //fileWriter.write(chars,0,2); //toCharArray()方法可以将字符串转成字符数组 fileWriter.write("中国,你好".toCharArray(),3,2);//你好 //write (string) :写入整个字符串 fileWriter.write(你好,中国”); fileWriter.write(”风雨过后,定见彩虹”); //write(string,off,len):写入字符串指定部分的指定部分 fileWriter.write(“你好世界”,2,2);//世界 ///在数据量大的情况下可以使用循环 } catch (IOException e) { e.printStackTrace(); } finally { ///FileWriter使用后,必须要关闭(close)或刷新(flush), 否则不能写入指定文件! try { fileWriter.close(); } catch (IOException e) { e.printStackTrace(); } } }}