「java读取‘read」java读取resource下的文件
本篇文章给大家谈谈java读取‘read,以及java读取resource下的文件对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、在Java中的io流中,read读取文件时,读取完了没有了返回-1,(为什么不是0啊?没有了就是0啊?)
- 2、JAVA关于read(char[])方法读取文本内容的问题
- 3、java 用FileInputStream中read方法读取文件出现乱码
- 4、java中read()方法的使用
在Java中的io流中,read读取文件时,读取完了没有了返回-1,(为什么不是0啊?没有了就是0啊?)
返回-1是对的啊,read字节数组的时候,读到最后一个没有的时候就数组越界异常,-1就是不在数组的索引值范围内,所以开发人员就将它作为read完成后的返回值
JAVA关于read(char[])方法读取文本内容的问题
我们就以内容是abcde为例:你设置的buf长度是1024,因此每次从文件中读取1024个字符。
第一次读取,fr.read(buf),因为文件中就5个字符,全被读到了buf中,此时len=5,执行循环体中的语句,输出abcde;然后程序继续执行;
第二次读取,fr.read(buf),由于文件中的数据第一次已经读完,因此此时返回值为-1,跳出循环。
所以最后输出abcde.
java 用FileInputStream中read方法读取文件出现乱码
while(is.read()!=-1){
b[i]=(byte) is.read();
i++;
}
这里是错的,当判断is.read() != -1的时候这个字节就已经被读取了,于是b[i] = (byte) is.read();这里读取的就是后面一个字节,自然会乱码。解决方法如下:
byte c = (byte)is.read();
while(c != -1){
b[i] = c
i++;
c = (byte)is.read();
}
还有一种更方便的:
byte[] b = new byte[is.available()];
is.read(b);
java中read()方法的使用
字节流的read()()方法是操作字节流的,字符流的read()方法是操作unicode字符的。
可以通过BufferedReader
流的形式进行流缓存,通过read()方法获取到缓存的内容。
示例代码:
BufferedReader
bre
=
null;
try
{
String
file
=
"X:/xxxx/xxxx.txt";//文件地址
bre
=
new
BufferedReader(new
FileReader(file));//获取到的bre就是整个文件的缓存流
while
(
bre.read()
!=
-1)
{//
判断是否为最后一个字节,若是则结束循环
System.out.println(bre.read());//输出读到的内容
};
bre.close();//切记需要写close()关闭流
备注:字节流读取过程中很容易出现乱码,建议可以用readLine方式进行逐行的读取。
java读取‘read的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java读取resource下的文件、java读取‘read的信息别忘了在本站进行查找喔。