各路大神请驻留,我的编写了一个简单类,只有一个Main函数,这是里面唯一的代码:try{FileInputStreamfis3=newFileInputStream("123.txt");byte[]buf3=newbyte[1024];inti=0;while((b...
各路大神请驻留,我的编写了一个简单类,只有一个Main函数,这是里面唯一的代码:
try{
FileInputStream fis3 = new FileInputStream("123.txt");
byte[] buf3 = new byte[1024];
int i = 0;
while((buf3[i] = (byte)fis3.read()) > 0){
i++;
}
System.out.print(i + "\n");
System.out.print(buf3.length + "\n");
System.out.print(new String(buf3, 0, buf3.length));
System.out.println();
System.out.print(new String(buf3, 0, i));
fis3.close();
}
catch(IOException ex){
ex.printStackTrace();
}
输出的结果如下:
136
1024
Hello World!ÿ
Hello World!
问题:为什么第一次输出字符串,却出现乱码呢? 还有:为什么buf3.length值居然是1024?
完整的136长度的字符串是这样的:
This is a test file for JavaIO.
To test InputStream class and OutputStream class.
To test Reader class and Writer class.
Hello World!
因为输入限制字数,所以我之把最后一行给贴出来了。
我看书上都说 buf3.length 将返回数组的实际长度,这个实际长度我就不明白了。
展开