java instream的read方法为什么执行到最后没有返回值,切停止执行
答案:4 悬赏:60 手机版
解决时间 2021-03-07 09:35
- 提问者网友:火车头
- 2021-03-06 08:52
java instream的read方法为什么执行到最后没有返回值,切停止执行
最佳答案
- 五星知识达人网友:逐風
- 2021-03-06 09:25
read方法是读取字节流,应该是读取的方式不对导致的,可以参考下以下内容。
可以通过BufferedReader 流的形式进行流缓存,之后通过read方法获取到缓存的内容。
BufferedReader bre = null;
try {
String file = "D:/test/test.txt";
bre = new BufferedReader(new FileReader(file));//此时获取到的bre就是整个文件的缓存流
while ((str = bre.read())!= -1) // 判断是否为最后一个字节,是的话结束循环
{
System.out.println(str);//输出读到的内容
};
流用完之后必须close掉,如上面的就应该是:bre.close(),否则bre流会一直存在,直到程序运行结束。
备注:字节流读取过程中很容易出现乱码,建议可以用readLine方式进行每行的读取。
可以通过BufferedReader 流的形式进行流缓存,之后通过read方法获取到缓存的内容。
BufferedReader bre = null;
try {
String file = "D:/test/test.txt";
bre = new BufferedReader(new FileReader(file));//此时获取到的bre就是整个文件的缓存流
while ((str = bre.read())!= -1) // 判断是否为最后一个字节,是的话结束循环
{
System.out.println(str);//输出读到的内容
};
流用完之后必须close掉,如上面的就应该是:bre.close(),否则bre流会一直存在,直到程序运行结束。
备注:字节流读取过程中很容易出现乱码,建议可以用readLine方式进行每行的读取。
全部回答
- 1楼网友:佘樂
- 2021-03-06 13:04
能贴出具体遇到什么错误吗
- 2楼网友:琴狂剑也妄
- 2021-03-06 11:32
兄弟,你没把read放到循环里,当然不走了,while((c=inn.read())!=-1){......},就没问题了。
- 3楼网友:梦中风几里
- 2021-03-06 10:06
read
public abstract intread()
throwsIOException
从输入流中读取数据的下一个字节。返回0到255范围内的int字节值。如果因为已经到达流末尾而没有可用的字节,则返回值-1。在输入数据可用、检测到流末尾或者抛出异常前,此方法一直阻塞。
子类必须提供此方法的一个实现。
返回:
下一个数据字节;如果到达流的末尾,则返回-1。
抛出:
IOException- 如果发生 I/O
错误。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯