当前位置:   article > 正文

文件字符流(FileReader/FileWriter)_filereader filewriter

filereader filewriter

       文件字符流(FileReader/FileWriter)针对文件字符的操作,不同于文件字节流(FileInputStream/FileOutputStream)。它是针对字符来进行操作的,因此他在处理纯字符集(纯文本)时十分的方便。而文件字节流能够处理音频,视频等等除纯文本以外的文件类型,因为他们是以字节为单位的。但是文件字符流不能够处理字节,它只能处理以字符为单位的文件。因此他不能处理音频,视频等以字节为单位的文件。

    一.文件字符输入流(FileReader)

       文件字符输入流是将文件中的字符读取到程序中。

       文件字符流的操作步骤与文件字节流一样:

       1.创建源

       2.选择流

       3.具体操作

       4.释放资源

       以文件字符流操作纯文本文件,可以很好的解决乱码的问题。具体代码如下:

  1. import java.io.*;
  2. /**
  3. * 测试Reader(对字符进行操作)
  4. * 字符数组-->字符串
  5. * Reader:read()
  6. */
  7. public class TestReader {
  8. public static void main(String[] args) {
  9. //创建源
  10. File file = new File("abc.txt");
  11. //选择流
  12. Reader reader = null;
  13. try {
  14. reader = new FileReader(file);
  15. //操作
  16. char[] flush = new char[1024]; //缓冲容器 InputStream:byte[](字节数组) Reader:char[](字符数组)
  17. int len = -1; //接收长度
  18. try {
  19. while ((len = reader.read(flush))!=-1){
  20. //字符数组-->字符串
  21. String str = new String(flush,0,len);
  22. System.out.print(str);
  23. }
  24. } catch (IOException e) {
  25. e.printStackTrace();
  26. }
  27. } catch (FileNotFoundException e) {
  28. e.printStackTrace();
  29. }finally {
  30. try {
  31. if (reader!=null){
  32. reader.close();
  33. }
  34. } catch (IOException e) {
  35. e.printStackTrace();
  36. }
  37. }
  38. }
  39. }

       以字符数组为单位进行操作,因此定义读取的字符数组char[],每次读取1024个字符,然后转化成字符串(String str = new String(flush,0,len))在进行写出。

    二.文件字符输出流(FileWriter)

       文件字符输出流是将程序中的字符串以字符形式写出到文件中去。具体代码如下:

  1. import java.io.File;
  2. import java.io.FileWriter;
  3. import java.io.IOException;
  4. import java.io.Writer;
  5. /**
  6. * 测试Writer(对字符进行操作)
  7. * 字符串-->字符数组
  8. */
  9. public class TestWriter {
  10. public static void main(String[] args) {
  11. //创建源
  12. File file = new File("dest.txt");
  13. //选择流
  14. Writer writer = null;
  15. try {
  16. writer = new FileWriter(file,true);
  17. //操作
  18. //写法一
  19. // String str = "问君能有几多愁?恰似一江春水向东流。";
  20. // //字符串-->字符数组
  21. // char[] datas = str.toCharArray();
  22. // writer.write(datas,0,datas.length);
  23. //写法二
  24. // String str = "问君能有几多愁?恰似一江春水向东流。";
  25. // writer.write("\t"+str);
  26. //写法三
  27. String str = "\n问君能有几多愁?恰似没穿秋裤遇寒流。";
  28. String str1 = "\n笑渐不闻声渐悄,多情却被无情恼";
  29. writer.append(str).append(str1);
  30. writer.flush();
  31. } catch (IOException e) {
  32. e.printStackTrace();
  33. }finally {
  34. try {
  35. if (writer!=null){
  36. writer.close();
  37. }
  38. } catch (IOException e) {
  39. e.printStackTrace();
  40. }
  41. }
  42. }
  43. }

       FileWriter是将字符串转化为字符数组(char[] datas = str.toCharArray())然后进行写出,如果进行多个字符串的写出,可以使用writer.append()进行追加,这样可以一次性写出多条字符串语句到文件中。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/209340?site
推荐阅读
相关标签
  

闽ICP备14008679号