IO初学习

java中I/O初学习。流是一个抽象的概念,当java程序需要从数据源读取数据是,会开启一个到数据源的流。

流可以分为字节流和字符流,使用中要注意使用前要导包,使用的过程中要进行异常处理,使用后要关闭资源。

字节流也称为原始数据,需要用户读入后进行相应的编码转换。而字符流的实现是基于自动转换的,读取数据时会把数据按照JVM的默认编码自动转换成字符。

对于字节流处理的类都继承自InputStream和OutputStream这两个抽象类。所有的字符流操作类都继承自Reader或者Writer这两个抽象类。

学习代码:

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;


public class ReaderDemo {
public static void main(String[] args) throws IOException {
FileReader fr = new FileReader("Test.txt");
//char c =(char)(fr.read());
/*int c;
while((c=fr.read())!= -1)
System.out.print((char)c);//读取信息
*/
//fr.read();//返回的是int类型的数字,读取到的一个字符的码表值(只要不到末尾就不是-1)
while(fr.read()!= -1 )
System.out.print((char)(fr.read()));
fr.close();//3. 使用后要释放资源
}
}


while((c=fr.read())!= -1)  

 System.out.print((char)c);

int c;

while((c=fr.read())!= -1)
System.out.print((char)c);


两种方式打印出来的结果会有区别,主要原因在于

上边的代码调用了两次fr.read()方法,所以读出来的文字是间隔着的,因为读取文件是有一个游标的过程(这个和Iterator差不多)。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值