Java---IO流(之)字符流_字符缓冲流_字节流__字节缓冲流-------对文件进行操作(特别的基础,了解即可)

本文详细介绍了Java中字符流的使用,包括FileReader和FileWriter进行文件内容的读写,以及如何通过循环和字符数组进行数据的输出。还探讨了为何在操作完成后需要关闭流,以释放缓存和确保硬盘上的内容更新。此外,展示了字符缓冲流BufferedReader和BufferedWriter在文件拷贝中的高效应用,以及如何通过字节流 FileInputStream 和 FileOutputStream 进行文件读写。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Java字符流对与文本的操作


操作一:输出文本的内容
输出一:进行字符输出

1:创建字符流对象

Reader readfile = new FileReader("test/1.txt");

2:读取数据

方案one:int test1 = readfile.read(); System.out.println(test1);弊端每次只能输出一个文本中的数据
方案two;int a=0;while(( a=readfile.read())!=-1) {System.out.println(a);} 通过循环数据来输出文本中的数据
注意要点:
例如文本的内容是m y c,拥有三个字符,
第一注意点:文件输出是有指针问题的,指针随着输出的情况来进行改变,也就是说当我第一输出的是m的话,当我再次执行输出语句的话输出的就是y,然后就是 c。
第二注意点是最后输出内容,当我进行的输出语句的内容已经完全将文本中的内容进行输出的时候,当再次执行输出语句是,输出的内容是**-1**.
第三点注意点:输出文本内容,输出的是字符串的代表的整数)
第四点注意点:运行文件可能出现错误,要先在执行前抛出错误,然后再执行代码即可

3:释放资源:在执行完后进行IO流关闭:

readfile.close();

问题:

那么请问一下为什么在文件操作完后要关闭流呢?
愿因1:每一个对文件的操作都是由缓存的,关闭流可以释放缓存
原因二:当你对硬盘中的文件进行操作时,不进行流关闭的情况下,操作文件内容是没有将操作写入硬盘文件中的
(例如:当你打开一个文件没有对它进行关闭,然后再对这个文件进行操作是会出现被占用的情况,这与流的概念差不多)

完整代码演示:

public class reader {
   
   
	public  static void main(String args[]) throws Exception {
   
   
		//字符流读取数据
Reader readfile = new FileReader("test/1.txt"); //文件内容为aaa
		
		//读取数据
		
//		int test1 = readfile.read();
//		System.out.println(test1);
		
		//由于在文件中含有许多的数据,通过循环来输出文件的内容
		int a=0;
		while(( a=readfile.read())!=-1) {
   
   
			System.out.println(a);
		}
		
		
		//释放资源
				readfile.close();
				}
-------------------------------------------
输出结果:
方法一:
97
方法二:
97
97
97
这是两种方法的输出结果:方法一:每次只能输出一个数据
方法二:可以全部的输出文件中数据

输出方式二:
字符流读取数据——按照字符数组读取
步骤与上面差不多的步骤,
区别就在于:创建一个数组来进行数据的输出
方法读取:
char [] chs = new char[字符数] int len = r.read(chs) 将数据通过数组的方式进行输出
其他的都与方式一相同,只需注意在最后的输出问题
代码:

public class reader {
   
   
	public  static void main(String args[]) throws Exception {
   
   
		//按照数组的方式去读取文件中的数据
		//a,b,c,d,e,f,g
		Reader test1 = new FileReader("test/a/b/1.txt");
		char [] chs = new char[3];
		int len = test1.read(chs);
		System.out.println(chs);
		System.out.println(len);
				
		while((len=test1.read(chs))!=-1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不想睡醒的梦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值