day068:字符流读、写数据,及其注意事项、flush和close方法、字符缓冲流
创始人
2024-02-03 13:34:20
0

目录

一、字符流

1.字符流=字节流+码表

2.字符流写数据(FileWriter)步骤

代码示例

3.字符流读数据(FileReader)步骤

代码示例

二、注意事项

三、 flush和close方法

代码示例

四、字符缓冲流

1.字符缓冲输入、输出流

2.代码示例


一、字符流

1.字符流=字节流+码表

2.字符流写数据(FileWriter)步骤

  • 创建字符输出流对象
  • 写数据
  • 释放资源

代码示例

(1)一次只写一个字符:

public class FileWriterDemo_01 {public static void main(String[] args) throws IOException {//创建一个字符输入流对象//FileWriter fw= new FileWriter(new File("myFileWriter"));//方法一FileWriter fw = new FileWriter("myFileWriter\\b.txt");//方法二//写出数据fw.write(97);fw.write(98);fw.write(99);//关流fw.close();}

(2)一次写一个字符数组:
 

   public static void main(String[] args) throws IOException {//创建一个字符输入流对象//FileWriter fw= new FileWriter(new File("myFileWriter"));//方法一FileWriter fw = new FileWriter("myFileWriter\\b.txt");//方法二//写出数据char [] chars = {97,98,99,100};fw.write(chars);//关流fw.close();}

(3)一次写一个字符数组的一部分:

   public static void main(String[] args) throws IOException {//创建一个字符输入流对象//FileWriter fw= new FileWriter(new File("myFileWriter"));//方法一FileWriter fw = new FileWriter("myFileWriter\\b.txt");//方法二//写出数据char [] chars = {97,98,99,100,101,102,103,104,105};//从0索引开始,一次写三个fw.write(chars,0,3);//关流fw.close();}

(4)写一个字符串:
 

   public static void main(String[] args) throws IOException {//创建一个字符输入流对象//FileWriter fw= new FileWriter(new File("myFileWriter"));//方法一FileWriter fw = new FileWriter("myFileWriter\\b.txt");//方法二//写出数据String line ="我爱中国!";fw.write(line);//关流fw.close();}

(5)写字符串的一部分:
 

 public static void main(String[] args) throws IOException {//创建一个字符输入流对象//FileWriter fw= new FileWriter(new File("myFileWriter"));//方法一FileWriter fw = new FileWriter("myFileWriter\\b.txt");//方法二//写出数据String line ="我爱中国!";fw.write(line,0,2);//关流fw.close();}

3.字符流读数据(FileReader)步骤

  • 创建字符输入流对象
  • 读数据
  • 释放资源

代码示例

(1)字符流一次读取一个数据:

   public static void main(String[] args) throws IOException {FileReader fr = new FileReader("myFileWriter\\b.txt");int ch;while ((ch=fr.read())!=-1){System.out.println((char) ch);}fr.close();}

(2)字符流一次读取多个字符:

public static void main(String[] args) throws IOException {FileReader fr = new FileReader("myFileWriter\\b.txt");//定义一个字符数组,长度为1024char[] chars = new char[1024];int len;while ((len = fr.read(chars)) != -1) {//把获取内容后的字符数组传入进去System.out.println(new String(chars, 0, len));//把获取的内容转化为字符串进行展示;}fr.close();}

二、注意事项

1.如果文件不存在,则自动创建文件,但要保证其父级文件路径存在

(如:myFileWriter\\a.txt,要创建a.txt文件,就要保证父级文件路径myFileWriter的存在)

2.如果文件已经存在,则自动清空其中的内容

3.如果写入的是int型的整数,则输出的是码表的对应字母;写入的是String型,则输出的也是String型

三、 flush和close方法

  • flush():刷新流,还可以继续写数据
  • close():关闭流,释放资源,但在关闭之前会先刷新流。一旦关闭,就不能再写数据

代码示例

public class FileWriterDemo_06 {public static void main(String[] args) throws IOException {//创建一个字符输入流对象//FileWriter fw= new FileWriter(new File("myFileWriter"));//方法一FileWriter fw = new FileWriter("myFileWriter\\b.txt");//方法二//写出数据String line = "我爱中国!";fw.write(line);// fw.flush(); //刷新流fw.write("666");// fw.flush();fw.close(); //关闭流}

四、字符缓冲流

1.字符缓冲输入、输出流

  • 字符缓冲输出流(BufferedWriter):可以将数据高效的写出
  • 字符缓冲输入流(BufferedReader):可以将数据高效的读出到内存

2.代码示例

(1)字符缓冲输入流:

   public static void main(String[] args) throws IOException {//创建一个字符缓冲输出流,里面传入相应的字符输出流BufferedReader br = new BufferedReader(new FileReader("myFileWriter\\c.txt"));//读取数据char [] chars = new char[1024];int len;while ((len=br.read(chars))!=-1){System.out.println(new String(chars,0,len));}//关闭流br.close();}

(2)字符缓冲输出流:
 

   public static void main(String[] args) throws IOException {//创建一个字符缓冲输出流,里面传入相应的字符输出流BufferedWriter bw = new BufferedWriter(new FileWriter("myFileWriter\\c.txt"));//写数据bw.write(97);//写一个数据bw.write("\r\n");char [] chars ={97,98,99,100};//写一个数组bw.write(chars);bw.write("\r\n");bw.write("哈哈");//写一个字符串bw.write("\r\n");String line ="abcdefg";//写一个字符串的部分bw.write(line,0,5);bw.write("\r\n");//刷新流bw.flush();//关闭流bw.close();}

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
一帆风顺二龙腾飞三阳开泰祝福语... 本篇文章极速百科给大家谈谈一帆风顺二龙腾飞三阳开泰祝福语,以及一帆风顺二龙腾飞三阳开泰祝福语结婚对应...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...