IO流的常用类

【一】IO流分为两种:字符流、字节流

字符流:Reader、Writer(常用于文件文本的读写)
字节流:InputStream、OutputStream(常用于图片、歌曲、视频等文件的读写)

【二】字符流

(1)高效读写,即带有缓冲区的BufferedReader、BufferedWriter
        BufferedReader(Reader):
            特有方法readLine(),若返回为null,则表示文件读取结束。
        BufferedWriter(Writer):
            特有方法newLine(),必须与flush()方法连用。

    BufferedReader bufr=new BufferedReader(new FileReader("a.txt"));
    BufferedWriter bufw=new BufferedWriter(new FileWriter("b.txt"));
    String line=null;
    while((line=bufr.readLine())!=null){
        bufw.write(line);
        bufw.newLine();   
        bufw.flush();
    }
    bufw.close();
    bufr.close();

   (2)FileReader、FileWriter标准的文本文件读写流
        FileReader(File):在给定从中读取数据的 File 的情况下创建一个新 FileReader。
        FileReader(String):在给定从中读取数据的文件名的情况下创建一个新 FileReader。
        FileWriter(File):根据给定的 File 对象构造一个 FileWriter 对象
        FileWriter(String):根据给定的文件名构造一个 FileWriter 对象。
    (3)PrintWriter
        PrintWriter(Wrinter):创建不带自动行刷新的新 PrintWriter。
        PrintWriter(File):使用指定文件创建不具有自动行刷新的新 PrintWriter。
        PrintWriter(OutputStream):根据现有的 OutputStream 创建不带自动行刷新的新 PrintWriter。
        PrintWriter(String):创建具有指定文件名称且不带自动行刷新的新 PrintWriter。
    (4)RandomAccessFile
        此类的实例支持对随机访问文件的读取和写入。该类内部封装了一个数组,而且通过指针对数组的元素进行操作。
        RandomAccessFile(file,r/rw):r表示的是只读操作,rw表示的是读写操作。
        如果模式为r,不会创建文件,会读取已经存在的文件,若文件不存在,就会报异常。
        如果模式为rw,会自动创建文件。若文件存在,不会覆盖原有的文件。
        特殊方法:
            seek():改变指针的位置。
            skipBytes(bytes):跳过bytes个字节进行对指针位置的调整,但是指针不能往回走。
    (5)CharArrayWriter、CharArrayReader
      

CharArrayReader(char[] buf) :根据指定的 char 数组创建一个 CharArrayReader。
        CharArrayWriter():创建一个新的 CharArrayWriter。
        CharArrayReader:此类实现一个可用作字符输入流的字符缓冲区。
        CharArrayWriter:此类实现一个可用作 Writer 的字符缓冲区。缓冲区会随向流中写入数据而自动增长。
        可使用 toCharArray() 和 toString() 获取数据。
        注:在此类上调用 close() 无效,并且在关闭该流后可以调用此类中的各个方法,而不会产生任何 IOException。
        特殊方法:
            append():追加输出。
    (6)StringReader、StringWriter
        StringReader(Reader):创建一个新字符串 reader。
        StringWriter():使用默认初始字符串缓冲区大小创建一个新字符串 writer。

【三】字节流

(1)高效读写,即带有缓冲区的BufferedInputStream、BufferedOutputStream
        BufferedInputStream(InputStream)
        BufferedOutputStream(OutStream)
    (2)FileInputStream、FileOutputStream
        FileInputStream(InputStream)
        FileOutputStream(OutStream)
    (3)PrintStream
        PrintStream(OutputStream)
        printStream(File)
        printStream(String)
        特有方法:
        print(基本数据类型)
        printf(基本数据类型)
        println(基本数据类型)
    (4)DataInputStream、DataOutputStream
        DataInputStream(InputStream)
        DataOutputStream(OutputStream)
    (5)ObjectInputStream、ObjectOutputStream
        ObjectInputStream()
        ObjectInputStream(InputStream)
        ObjectOutputStream()
        ObjectOutputStream(OutputStream)
    (6)PipleInputStream、PipleOutputStream
        PipleInputStream()
        PipleOutputStream()
    (7)SequenceInputStream
        SequenceInputStream(Enumeration<? extends InputStream> e)     
    (8)ByteArrayInputStream、ByteArrayOutputStream

【四】转换流

字节流与字符流之间的桥梁:
    InputStreamReader:
    OutputStreamWriter:

    BufferedReader bufr=new BufferedReader(new InputStreamReader(System.in));
	BufferedWriter bufw=new BufferedWriter(new OutputStreamWriter(System.out));
	String line=null;
	while((line=bufr.readLine())!=null){
		bufw.write(line);
		bufw.newLine();
		bufw.flush();
	}
	bufw.close();
	bufr.close();

 

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值