[求助]菜鸟求助read用法
package day15;import java.io.*;
public class TestFileStream {
public static void main(String[] args) throws Exception {
FileInputStream in =new FileInputStream("a.txt"); //创建文件输出流对象
int i;
byte[]bs=new byte[3]; //创建byte 数组
while((i=in.read(bs))!=-1){ //根据对象流读字符的返回值确定是否继续执行//i读入缓冲区的字节总数
System.out.println(i+"\t");
for(int j=0;j<i;j++){
System.out.print( (char)bs[j]+"\t");
}
System.out.println();
}
System.out.println(i+"\t");
in.close();
}
}
3
A B C
3
D E F
2
G
为什么最后输出的是2呢?
----------------解决方案--------------------------------------------------------
可能有空格等看不见的字符,你要看是什么,最好的方法还是把它的int 值打出来,不要打char
----------------解决方案--------------------------------------------------------
a.txt 内容123456
3
1 2 3
3
4 5 6
1
-1
----------------解决方案--------------------------------------------------------
这不 是正常的吗
----------------解决方案--------------------------------------------------------
那4下面的1怎么解释呀
----------------解决方案--------------------------------------------------------
读到了尾部-1啊
不是把-1打出来了吗?
----------------解决方案--------------------------------------------------------
4
1 <--------这里----------------
-1
----------------解决方案--------------------------------------------------------
1表示你的数组大小
-1表示你数组里面的元素的值
----------------解决方案--------------------------------------------------------
LZ用UE打开你那个a.txt文件看下,用HEX模式
肯定在123456后面还有一个字节的非打印数据.
----------------解决方案--------------------------------------------------------
试试看谢各位
----------------解决方案--------------------------------------------------------