美文网首页java随笔
IO 文本读写本地

IO 文本读写本地

作者: 71150ce14a00 | 来源:发表于2017-06-13 17:01 被阅读8次

    FileWriter:
    构造方法:
    FileWriter(String fileName); 传入一个文件路径成员方法
    FileWriter(String fileName, boolean append): 根据给定的文件名以及指示是否附加写入数据的 boolean 值来构造 FileWriter 对象。

     其他方法:
                    void   write(String str) 向文件中写入字符串
                    void   flush()  将内存中的数据刷新到文件/硬盘上 
                    void   close()  关流释放系统底层资源
    
      写入方法:
                      void   write(String str) 向文件中写入字符串
                      void   write(String str,int index, int len): 写一个字符串中的一部分数据
                      void   write(int ch): 写一个字符数据,这里写int类型的好处是既可以写char类型的数据,也可以写char对应的int类型的值 ‘a’= 97
                      void   write(char[] chs): 写一个字符数组数据
                      void   write(char[][ chs,int index, int len): 写一个字符数组的一部分数据
    
          注意: 换行写入: windows: \r\n     linux: \n     mac:\r
                      路径选择:如果用\反斜线则需要写两个\\ , 转义字符,正则表达式
                                        如果用/ 反斜线,只需要写一个即可, 
    

    close() 和 flush() 方法区别
    flush():刷新缓冲区, 实时写入
    close():先刷新缓冲区,然后释放资源

    FileReader:

                 构造方法:
    
                                FileReader(String fileName);  
                         
               其他方法:
                        int  read()  一次读取一个字符,返回的是int类型的字符
                        int  read(char[] char):  一次读取一个字符数组的数据,返回的是实际读取的字符个数
    

    BufferedWriter :
    优点:将文本写入字符输出流,缓冲各个字符,从而提供单个字符,数组和字符串的高效写入
    构造方法:
    BufferedWriter(Writer out): 创建一个使用默认大小输出缓冲区的缓冲字符输出流
    BufferedWriter(Writer out, int sz) :
    BufferedReader br = new BufferedReader(new FileReader( "FileWriterDemo.java" ));

               其他方法:
                              void newLine(): 写一个换行符, 这个换行符由系统决定
    

    BufferedReader:
    从字符输入流中读取文本,缓冲各个字符,从而实现字符,数组和行的高效读取
    BufferedReader br = new BufferedReader(new FileReader( "br.txt"));

         其他方法:
                    String readLine(): 一次读取一样数据,但不读取换行符
    

    //缓冲流一次读写一个字符串
    public static void method5(String srcFileName,String destFileName) throws IOException {
    //创建输入缓冲流对象
    BufferedReader br = new BufferedReader(new FileReader(srcFileName));
    //创建输出缓冲流对象
    BufferedWriter bw = new BufferedWriter(new FileWriter(destFileName));

              //一次读写一个字符串
             String line;
              while((line =br .readLine())!=null){
                     bw.write( line);
                     bw.newLine();
                     bw.flush();
             }
             
              //释放资源
              bw.close();
              br.close();
       }
       
        //缓冲流一次读写一个字符数组
        public static void method4(String srcFileName,String destFileName) throws IOException {
              //创建输入缓冲流对象
             BufferedReader br = new BufferedReader(new FileReader(srcFileName));
              //创建输出缓冲流对象
             BufferedWriter bw = new BufferedWriter(new FileWriter(destFileName));
             
              //一次读写一个字符数组
              char[] chs = new char[1024];
              int len ;
              while((len =br .read(chs ))!=-1) {
                     bw.write( chs,0, len);
             }
             
              //释放资源
              bw.close();
              br.close();
       }
       
        //缓冲流一次读写一个字符
        public static void method3(String srcFileName,String destFileName) throws IOException {
              //创建输入缓冲流对象
             BufferedReader br = new BufferedReader(new FileReader(srcFileName));
              //创建输出缓冲流对象
             BufferedWriter bw = new BufferedWriter(new FileWriter(destFileName));
             
              //一次读写一个字符
              int ch ;
              while((ch =br .read())!=-1) {
                     bw.write( ch);
             }
             
              //释放资源
              bw.close();
              br.close();
       }
       
        //基本流一次读写一个字符数组
        public static void method2(String srcFileName,String destFileName) throws IOException {
              //创建输入流对象
             FileReader fr = new FileReader(srcFileName );
              //创建输出流对象
             FileWriter fw = new FileWriter(destFileName );
             
              //一次读写一个字符数组
              char[] chs = new char[1024];
              int len ;
              while((len =fr .read(chs ))!=-1) {
                     fw.write( chs,0, len);
             }
             
              //释放资源
              fw.close();
              fr.close();
       }
       
        //基本流一次读写一个字符
        public static void method1(String srcFileName,String destFileName) throws IOException {
              //创建输入流对象
             FileReader fr = new FileReader(srcFileName );
              //创建输出流对象
             FileWriter fw = new FileWriter(destFileName );
             
              //一次读写一个字符
              int ch ;
              while((ch =fr .read())!=-1) {
                     fw.write( ch);
             }
             
              //释放资源
              fw.close();
              fr.close();
       }
    

    }

    相关文章

      网友评论

        本文标题:IO 文本读写本地

        本文链接:https://www.haomeiwen.com/subject/wnzdqxtx.html