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){}}
                    
                }
            }
                
                }    
        }
            
        
  • 相关阅读:
    2019-11-12-WPF-添加窗口消息钩子方法
    2018-11-21-WPF-解决-ViewBox--不显示线的问题
    ARRAY_SIZE宏
    tcp校验和
    arp命令
    sk_buff
    printf打印字节
    dmesg命令
    insmod/rmmod
    ifup/ifdown
  • 原文地址:https://www.cnblogs.com/chenqr/p/6422742.html
Copyright © 2011-2022 走看看