输入/输出

  • Java的IO是通过java.io包下的类和接口来支持,在java.io包下主要包括输出/输出两种IO流,每种输入输出流又可以分为字节流和字符流两大类来处理输入、输出操作
  • Windows的路径分隔符使用反斜线(\),而java的\代表转义字符,所以如果需要在Windows的路径下包括反斜线,则应该使用两条反斜线,如F:\abc\test.txt,或者直接用/

输入输出流

  • Java的输入流主要由InputStream和Reader作为基类,输出流则由OutputStream和Writer作为基类。他们都是一些抽象类

字节流和字符流

  • 字节流和字符流的用法几乎一样,区别在于字节流和字符流所操作的单元不同—字节流是数据单元是8位的字节,字符流操作的数据单元是16位的字符。

IputStream、Reader提供的方法

两个方法都一样,区别在于数据单元不一

  • int read():从输出流读取单个字节/字符,返回所读取字节/字符的数据
  • int read(byte[]/char[] b):从输入流中最多读取b.length个字节/字符的数据,并将其存储在b中,返回实际读取的字节/字符数。
  • int read (byte[]/char[] b,int off,int len):off代表读取数据的开端,len代表从数据流中最多读取len个字符/字节的数据

OutputStream、Writer提供的方法

  • int wirter(int c):把指定数据输出到输出流中,返回所读取字节/字符的数据
  • int wirter(byte[]/char[] b):将字节、字符数组的数据输出到输出流中。
  • int wirter (byte[]/char[] b,int off,int len):off代表读取数据的开端,len代表从数据流中最多输出len个字符/字节的数据

常用BuffereReader/BuffereWriter ,里面有方法readLine(),可以一次读取一行内容

转换流

输入、输出流体系还提供了两个转换流,这两个转换流用于实现将字节流转换成字符流,其中InputStreamReader是将字节输入流转换成字符输入流,OutputStreamWriter 将字节输出流转换成字符输出流,Java只有字节转字符,因为字节比字符使用的范围更加广大,已经是字符就不需要再转回字节了。

推回输入流

  • PushbackInputStream/PushbackReader 提供方法如下:

void unread(byte[]/char[] buf ): 将一个字节/字符数组推回缓冲区里,从而允许重复读取刚刚读取的数据。
void unread(byte[]/char[] buf , int off,int len):将一个字节/字符数组从off开始,长度为len字节/字符数组推回缓冲区里,从而允许 重复读取刚刚读取的数据。
void unread(int b):将一个字节/字符退回带缓冲区里,从而允许重复读取刚刚读取的内容。

重定向标准输入/输出

在System类中有三个方法:

  • static void setErr(printStream err): 重定向“标准”错误输出流。
  • static void setIn(InputStream in):重定向“标准”输入流。
  • static void setOut(printStream out): 重定向“标准”输出流。

例如:Systeam.out.println()是输出到屏幕的,可以通过重定义输出到文件上。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值