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){}}
                    
                }
            }
                
                }    
        }
            
        
  • 相关阅读:
    Codeforces Round #297 (Div. 2) 525C Ilya and Sticks(脑洞)
    全栈必备 JavaScript基础
    2014-04-19编程之美初赛题目及答案解析
    doT js模板入门 2
    一篇关于arc下内存管理的老文章,包含各种冷门修饰符(关于内存),写的较好,mark
    MyBatis官方教程及源代码解析——mapper映射文件
    Android中图片的三级缓存策略
    python字符串/元组/列表/字典互转
    关于字节对齐的理解
    阿里云服务器ecs配置之安装redis服务
  • 原文地址:https://www.cnblogs.com/chenqr/p/6422742.html
Copyright © 2011-2022 走看看