【Java笔记】文件读取(区别txt和csv文件的情况)

【前提】
在文件流中,不同的流对应不同的缓冲区reader和writer才能读出文件

文件的导入方法

1、直接声明文件
File file1 = new File("te.csv");

2、声明文件输入流,选择文件,参数也可以是File类型的文件
FileInputStream file2 = new FileInputStream("te.csv");

文件内容读取方法

只要reader,就都不能直接把file作为参数,必须先将其作为输入流的成分,才能再read

1、声明输入流reader对象
这个输入流reader实例化时其参数也要为输入流InputStream对象

FileInputStream file2 = new FileInputStream("te.csv");

InputStreamReader reader = new InputStreamReader(file2,"UTF-8");

这里的FileInputStream类是继承自InputStream类的孩子,所以都是输入流对象可以作为参数。
输入流对象的好处是可以在read时选择编码方式。因此下一个缓冲区reader参数即使是换了个对象,仍然要以输入流对象作为参数。

2、声明缓冲区reader对象
这和上面的输入流类似,只是多了一步,把InputStreamReader转化为BufferedReader对象,只有括号里面的reader也是读取,但二者调用的函数就不一样了。

FileInputStream file1 = new FileInputStream("te.csv");

BufferedReader reader = new BufferedReader(new InputStreamReader(file1,"GBK"));

参数其实也可以不用InputStreamReader对象,换成FileReader对象也可以
但这时就只能写文件名了,不能改变编码格式 !这个在读取txt文件时没大问题,里面是中文也能打印出来,但其他文件就不行了。
即不管怎样BufferedReader的reader参数表里一定放的也是reader类型 !

File file3 = new File("te.csv");
reader = new BufferedReader(new FileReader(file3));

按行读取方法

1、文件流,接上点1
这里需要声明一个StringBuffer对象储存读到的内容

StringBuffer sb=new StringBuffer();

while(reader.ready()) {
	sb.append((char)reader.read());
	}
System.out.println(sb.toString());

2、缓冲区法,接上点2
因为已经声明好了缓冲区reader,读到的内容就是String类型了

String temp = null;
			
while ((temp = reader.readLine()) != null) {
	System.out.println(temp);
	}
  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值