zoukankan      html  css  js  c++  java
  • 五、文件字符流FileReader&FileWriter

    一、前提

    文件字节流可以处理所有的文件,但是字节流不能很好的处理Unicode字符,经常会出现“乱码”现象。所以,我们处理文本文件,一般可以使用文件字符流,它以字符为单位进行操作。

    二、FileReader

    与FileInputStream类似,只需将名字换掉即可

     1 import java.io.*;
     2 
     3 public class TestIO05 {
     4     public static void main(String[] args) {
     5         //创建流
     6         File file = new File("b.txt");
     7         //选择流
     8         Reader reader = null;
     9         try {
    10             reader = new FileReader(file);
    11             //操作流(分段读取),提高读取效率
    12             char[] flush = new char[1024];
    13             int len = -1;  //接收长度
    14             while ((len = reader.read(flush)) != -1){
    15                 //解码操作,字符数组-->字符串
    16                 String str = new String(flush,0,len);
    17                 System.out.println(str);
    18             }
    19         } catch (IOException e) {
    20             e.printStackTrace();
    21         }finally {
    22             //关闭流
    23             if(reader!=null){
    24                 try {
    25                     reader.close();
    26                 } catch (IOException e) {
    27                     e.printStackTrace();
    28                 }
    29             }
    30         }
    31     }
    32 }

     二、FileWriter

     1 import java.io.*;
     2 
     3 public class TestIO06 {
     4     public static void main(String[] args) {
     5         //创建源
     6         File src = new File("abc.txt");
     7         //选择流
     8         Writer writer = null;
     9         try {
    10             writer = new FileWriter(src);
    11             //操作流(写出)
    12             //写法一
    13             /*String msg = "IO is so esay
    哈哈哈";
    14             char[] datas = msg.toCharArray();  //字符串-->字符数组(编码)
    15             writer.write(datas,0,datas.length);*/
    16 
    17             //写法二(实际上字符串就是字符数组,不需要处理它,直接丢进去就行)
    18             /*String msg = "IO is so esay
    哈哈哈";
    19             writer.write(msg);*/
    20 
    21             //写法三(append方法,更加简单)
    22             writer.append("IO is so esay
    ").append("哈哈哈");
    23             writer.flush();   //刷新此输出流并强制任何缓冲的输出字节被写出,细节
    24         } catch (FileNotFoundException ex) {
    25             ex.printStackTrace();
    26         } catch (IOException e) {
    27             e.printStackTrace();
    28         } finally {
    29             //释放资源
    30             if(writer!=null){
    31                 try {
    32                     writer.close();
    33                 } catch (IOException e) {
    34                     e.printStackTrace();
    35                 }
    36             }
    37         }
    38     }
    39 
    40 }

  • 相关阅读:
    安卓模拟器BlueStacks 安装使用教程(图解)
    照相机滤镜使用,优化解码和滤镜导致的预览卡屏现象
    移动语音引擎相关开发笔记
    Linux下查看硬件信息的方法
    linux下彻底卸载mysql 图解教程
    linux下yum安装及配置
    mybatis中的resultMap
    项目管理模式之如何去除SVN标记
    myeclipse中的classpath
    Spring的AOP配置
  • 原文地址:https://www.cnblogs.com/qiaoxin11/p/12588651.html
Copyright © 2011-2022 走看看