学习java基础文件流时遇到问题

package cn.java.study;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.RandomAccessFile;

public class Test{
	
	public static void main(String args[]) throws IOException{
		StringBuffer buf = new StringBuffer();
		char ch;
		File file = new File("D:\\1.txt");
		InputStream input = new FileInputStream(file); 
		OutputStream output = new FileOutputStream(file); 
		
		byte[] cache = new byte [10240];
		while( (ch=(char)input.read(cache))!='\n') {
			buf.append(ch);
			
		}
		System.out.println(buf);
		output.close();
		input.close();
	}
}

1.txt里写了几句话,但是程序运行后一直读不出来,等了好长时间还在运行,跪求各位大佬指点指点我,感谢感谢

cache 才是存储文件内容的,而 read 返回的其实是存储到 cache 中的字节的长度。所以你应该改成 append(0, len, cache)

输入输出流不能用同一个file 对象,再定义一个file 对象

你这个output 对象没用,可以删除

你用的这个read方法是返回读取长度的,没有读取到内容返回-1,数据类型是int,读取到的内容在byte数组内。

您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632