zoukankan      html  css  js  c++  java
  • Java文件(io)编程——文件字符流的使用

    案例1:

    读取一个文件并写入到另一个文件中,char[] 来中转。

    首先要在E盘下创建一个文本文档,命名为test.txt,输入一些字符串。

     1 public class Demo_5 {
     2 
     3     public static void main(String[] args) {
     4     
     5         FileReader fr=null;                       //文件取出字符流对象(输入流)    
     6         FileWriter fw=null;                       //写入到文件(输出流)
     7 
     8         try {
     9             fr=new FileReader("e:\test.txt");    //创建一个fr对象    
    10             fw=new FileWriter("d:\test.txt");    //创建输出对象
    11             
    12             char []c=new char[1024];              //读入到内存
    13             int n=0;                              //记录实际读取到的字符数
    14             while((n=fr.read(c))!=-1){
    15                 //String s=new String(c,0,n);
    16                 fw.write(c,0,n);                   
    17             }
    18         } catch (Exception e) {
    19             e.printStackTrace();
    20         }finally{
    21         
    22             try {
    23                 fr.close();
    24                 fw.close();
    25             } catch (Exception e) {
    26                 e.printStackTrace();
    27             }
    28         }        
    29     }
    30 }

    打开D盘的test.txt文件,出现相同的字符串。

    案例2:为了提高效率引入了缓冲字符流

    依然实现读取一个文件并写入到另一个文件中,直接操作String。

     1 public class Demo_6 {
     2 
     3     public static void main(String[] args) {
     4 
     5         BufferedReader br=null;
     6         BufferedWriter bw=null;
     7         
     8         try{        
     9             FileReader fr=new FileReader("e:\test.txt");   //先创建FileReader对象
    10             br=new BufferedReader(fr);
    11 
    12             FileWriter fw=new FileWriter("d:\test1.txt");  //创建FileWriter对象
    13             bw=new BufferedWriter(fw);
    14             
    15             String s="";
    16             while((s=br.readLine())!=null){                 //循环读取文件,s不为空即还未读完毕     
    17                 bw.write(s+"
    ");                         //输出到磁盘,加上“
    ”为了实现换行
    18             } 
    19         }catch(Exception e){
    20             e.printStackTrace();
    21         }finally{    
    22             
    23             try {
    24                 br.close();
    25                 bw.close();
    26             } catch (Exception e) {
    27                 e.printStackTrace();
    28             }
    29         }
    30     }
    31 }

    打开D盘的test1.txt文件,出现相同的字符串。

    总结:字节流操作对象byte,字符流操作对象char,缓冲字符流操作对象String。

  • 相关阅读:
    Leetcode 238. Product of Array Except Self
    来博客园的第一天
    [LeetCode] 1020. Number of Enclaves
    [LeetCode] 921. Minimum Add to Make Parentheses Valid
    [LeetCode] 1541. Minimum Insertions to Balance a Parentheses String
    [LeetCode] 738. Monotone Increasing Digits
    [LeetCode] 1669. Merge In Between Linked Lists
    [LeetCode] 865. Smallest Subtree with all the Deepest Nodes
    [LeetCode] 376. Wiggle Subsequence
    [LeetCode] 1170. Compare Strings by Frequency of the Smallest Character
  • 原文地址:https://www.cnblogs.com/cxq1126/p/7345705.html
Copyright © 2011-2022 走看看