• io流


    一、流的分类

       按操作数据分:字节流与字符流

       按流向分:输出流,输入流

    二、IO流常用基类

    字节流的抽象基类:

      InputStream,OutputStream

    字符流的抽象基类

     Reader  writer

    三、字符流的特点

    1、Writer(抽象基类:意味着要别人来实现)

    常用直接子类:FileWriter

    需求:在硬盘上,创建一个文件并写入数据

    import java.io.FileWriter;
    import java.io.IOException;
    
    
    public class IoWriter {
        public static void main(String[] args) throws IOException {
            //创建一个FileWriter对象,该对象被初始化必须要明确被操作的文件
            //假如"demo.txt"之前不存在,编译运行后它会被创建。如果目录下有同名文件,将被覆盖 
            FileWriter fw=new FileWriter("demo.txt");
           //调用write方法,将字符串写到流(内存)中,还没写到目的地
            fw.write("abc");
          //这个刷新方法把流中的东西写到目的地
            fw.flush();
        }
    
    }

    需求:我想续写文件内容,该怎么做?

    import java.io.FileWriter;
    import java.io.IOException;
    
    
    public class IoWriter {
        public static void main(String[] args) throws IOException {
            
            //加上一个true即可
            FileWriter fw=new FileWriter("demo.txt",true);
          
            fw.write("hahaha");
        
            fw.flush();
        }
    
    }

    2、Reader(抽象)

    常用子类:FileReader 

    需求:读取“demo.txt”中的内容

    public class FileReaderDemo {
        public static void main(String[] args) throws IOException {
            //我想读的文件是谁。这个文件必须存在,否则报异常
            FileReader fr=new FileReader("demo.txt");
           //read():一次读一个字符。而且会自动往下读
            int ch1=fr.read();        
            System.out.println("ch1="+(char)ch1);
            int ch2=fr.read();        
            System.out.println("ch2="+(char)ch2);
            //假如我读到末尾,没有东西可以读,就会返回-1
            while(true){
                int ch=fr.read();
                if(ch==-1)
                    break;
                System.out.println("ch="+(char)ch);
            }
                
            fr.close();
        }
    
    }

    又或者把循环语句改成:

    public class FileReaderDemo {
        public static void main(String[] args) throws IOException {
            //我想读的文件是谁。这个文件必须存在,否则报异常
            FileReader fr=new FileReader("demo.txt");
          
            //又或者这么读,如果不等于-1,我就一直读
            int ch=0;
            
            while((ch=fr.read())!=-1){
                System.out.println("ch="+(char)ch);
            }
                    fr.close();
        }
    
    }

     


              

  • 相关阅读:
    Java泛型类和泛型方法
    Java泛型解析
    Reflection and array
    再叙Java反射
    Java Reflection(getXXX和getDeclaredXXX)
    Java反射(Reflection)
    MySQL Block Nested Loop and Batched Key Access Joins(块嵌套循环和批量Key访问连接)
    jQuery学习之jQuery Ajax用法详解
    request和request.form和request.querystring的区别
    浏览器中event.srcElement和event.target的兼容性问题
  • 原文地址:https://www.cnblogs.com/chenqr/p/6421899.html
Copyright © 2020-2023  润新知