Java回炉之IO流(一)

Java回炉之IO流(一)

InputStream

字节输入流

FileInputStream

  1. 构造方法

    • FileInputStream(File file):通过文件创建
    • FileInputStream(String name):通过文件名创建
    • FileInputStream(FileDescriptor fdobj):
  2. 读数据

    • int read():一次读一个字节作为返回值(每读一次指针后移,返回-1说明到达文件末尾)
    • int read(byte[] b):一次读一组字节放入参数中,返回值为实际读取的字节数(每读一次指针后移,返回-1说明到达文件末尾)
  3. 关闭

    • close()

BufferedInputStream

  1. 构造方法

    • BufferedInputStream(InputStream os):使用默认缓冲区大小
    • BufferedInputStream(InputStream os,int size):指定默认缓冲区大小
  2. 读数据

    • int read():读一个字节
    • int read(byte[] b):读一组字节
  3. 关闭

    • close():会把构造器中的参数Stream一起close

OutputStream

字节输出流

FileOutputStream

  1. 构造方法

    • FileOuputStream(File file):根据文件创建文件字节输出流
    • FileOutputStream(File file,boolean append):第二个参数为true为追加模式
    • FIleOutputStream(String name):根据文件名创建字节输出流
    • 在物理上创建文件、创建文件字节输出流对象、把流对象指向文件
  2. 写数据(物理上写入)

    • write(int b):写一个字节
    • write(byte[] b):写一组字节
    • write(byte[] b,int off,int length):写一组字节的一部分
    • write(“\r\n”.getBytes()):写入换行(\r\n-windows \n-linux \r-Mac)
  3. 关闭

    • close():关闭流并通知系统释放资源
  4. 异常处理

FileOutputStream fos = null;
try {
    // fos = new FileOutputStream("z:\\fos4.txt");
    fos = new FileOutputStream("fos4.txt");
    fos.write("java".getBytes());
} catch (FileNotFoundException e) {
    e.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
} finally {
    // 如果fos不是null,才需要close()
    if (fos != null) {
        // 为了保证close()一定会执行,就放到这里了
        try {
            fos.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

BufferedOutputStream

  1. 构造方法

    • BufferedOutputStream(OutputStream os):使用默认缓冲区大小
    • BufferedOutputStream(OutputStream os,int size):指定默认缓冲区大小
    • 本类只提供缓冲作用,流处理通过构造器的参数提供
  2. 写数据

    • write(int b):写一个字节
    • write(byte[] b):写一组字节
    • write(byte[] b,int off,int length):写一组字节的一部分
    • write(“test”.getBytes());
  3. 关闭

    • close():会把构造器中的参数Stream一起close

Reader

字符输入流
- BufferReader
- 字符缓冲输入流
- new BufferedReader(new FileReader("test.txt"));
- read(char)
- read(char[])
- readLine():读一行字符
- close()

Writer

字符输出流
- BufferedWriter
- 字符缓冲输出流
- new BufferedWriter(new OutputStreamWriter(new FileOutputStream("test.txt")));
- new BufferedWriter(new FileWriter("test.txt"));
- write()
- newLine():换行
- flush()
- close()

转换流

转换流其实是字符流
1. OutputStreamWriter
- 把字节流转换成字符流
- OutputStreamWriter(OutputStream out):用默认编码表把字节流转换为字符流
- OutputStreamWriter(OutputStream out,String charsetName):用指定编码表把字节流转换为字符流
- write(int c):写一个字符
- write(char[] cbuf):写一个字符数组
- write(char[] cbuf,int off,int len):洗衣歌字符数组的一部分
- write(String str):写一个字符串
- write(String str,int off,int len):写一个字符串的一部分
- flush():从缓冲区刷入文件
- close()

  1. InputStreamReader

    • InputStreamReader(InputStream in):用默认编码
    • InputStreamReader(InputStream in,String charsetName):用指定编码
    • read():一次读取一个字符
    • read(char[] chs):一次读取一个字符数组
    • close()
  2. FileWriter

    • FileOutputStream + 默认编码表
  3. FIleReader

    • FileInputStream + 默认编码表

总结

JavaIo流分析图
图片源文件下载

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值