zoukankan      html  css  js  c++  java
  • io流-day2

    前边已经用到 int read():用于读取单个字符。

    需求:定义一个字符数组,用于存储读到字符.(重要)

    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.IOException;
    
    
    public class FileReaderDemo2 {
        public static void main(String[] args) throws IOException {
            FileReader fr=new FileReader("demo.txt");
           char []buf=new char[3];
        //int read(char[] buf):返回的int代表数据字符个数
           int num=fr.read(buf);
            System.out.println("num="+num+"..."+new String(buf));
            int num2=fr.read(buf);
            System.out.println("num2="+num2+"..."+new String(buf));
         fr.close();
        }
    
    }

    需求:打印一个.java文件,并打印在控制台上

    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.IOException;
    
    
    public class FileReaderDemo3 {
        public static void main(String[] args) throws IOException {
            FileReader fr=new FileReader("Demo.java");
          char [] buf=new char[1024];
         int num=0;
          while((num=fr.read(buf))!=-1){
              //数据在buf数组了,把数组转成字符串
              System.out.println(new String(buf,0,num));
          }
          fr.close();
        }
    
    }

    需求:把demo1.txt的东西写到demo2.txt

    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException;
    
    
    public class FileReaderDemo4 {
      public static void main(String[] args) throws IOException {
        //把demo1的东西写到demo2
         FileReader fr=new FileReader("demo1.txt");
         FileWriter fw=new FileWriter("demo2.txt");
         int c=0;
         while((c=fr.read())!=-1){
            //FileWriter下的public void write(int c):c代表要写入字符的int
             //这个方法从demo1.txt读一个字符,就往demo2.txt写入一个,依次轮回,效率低
             fw.write(c);
         }
      fr.close();
      fw.close();
         
      }
    }

    改进效率问题以及进行规范的try--catch(重点):

    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException;
    
    
    public class CopyDemo2 {
        public static void main(String[] args) throws IOException {
            FileReader fr=null;
            FileWriter fw=null;
            try{
             fr=new FileReader("demo1.txt");
              fw=new FileWriter("demo2.txt");
         char []buf=new char[1024];
         int num=0;
         while((num=fr.read(buf))!=-1){
             fw.write(buf,0,num);
         }
         }
            catch(IOException e){
                throw new RuntimeException("读写失败");
            }
            finally{
                if(fr!=null){
                    try{
                        fr.close();
                    }catch(IOException e){}
                    finally{if(fw!=null)
                        try{
                            fw.close();
                        }catch(IOException e){}}
                    
                }
            }
                
                }    
        }
            
        
  • 相关阅读:
    Android 创建Library Project(库项目)与引用操作
    Android插件化(二):使用DexClassLoader动态载入assets中的apk
    洛谷P3388 【模板】割点(割顶)(tarjan求割点)
    BZOJ 1179: [Apio2009]Atm(tarjan+SPFA)
    洛谷P1067 多项式输出(模拟)
    洛谷P2118 比例简化(暴力)
    BZOJ 3714: [PA2014]Kuglarz(最小生成树)
    BZOJ 4289: PA2012 Tax(最短路)
    BZOJ 4152: [AMPPZ2014]The Captain(最短路)
    洛谷P2939 [USACO09FEB]改造路Revamping Trails(最短路)
  • 原文地址:https://www.cnblogs.com/chenqr/p/6422742.html
Copyright © 2011-2022 走看看