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){}}
                    
                }
            }
                
                }    
        }
            
        
  • 相关阅读:
    积累-T
    HTML:文件标签(四)
    HTML:文件标签(三)
    HTML:文件标签(二)
    队列:最近的请求次数 (Leetcode 933 / Leetcode 232 / 剑指09 / Leetcode 225 / Leetcode 862 )
    HTML:文件标签(一)
    HTML: 介绍 & 规范
    java.sql.SQLException: Access denied for user 'root '@'localhost' (using password: YES)
    JDBC和XML- 学习笔记
    数据库: 商城案例
  • 原文地址:https://www.cnblogs.com/chenqr/p/6422742.html
Copyright © 2011-2022 走看看