FileInputStream 算法如何工作?
How does FileInputStream algorithm works?
FileInputStream
class 创建的字节是如何创建的?
例如,如果文件包含 FileInputStream
读取的数字 12,生成的字节是 [49, 50, 13, 10],为什么?
import java.io.*;
public class exp{
public static void main(String[] args){
InputStream is = null;
try{
is = new FileInputStream(new File("./info.txt"));
}catch(Exception e){}
while(true){
byte b = 0;
try{
b = (byte) is.read();
}catch(Exception e){}
if(b == -1) break;
System.out.println(b);
}
}
}
12
作为二进制的 32 位 00000000 00000000 00000000 00001100
bytes 应该是 [0, 0, 0, 12]
而不是 [49, 50, 13, 10]
.
它是 ASCII。
49 == '1'
50 == '2'
13 == '\r' //carriage return
10 == '\n' //end of line
因为文件是文本文件,不是二进制文件。一切都是正确的,如果文件是在 Linux 机器上写入的,它将只有四个字符。
FileInputStream
class 创建的字节是如何创建的?
例如,如果文件包含 FileInputStream
读取的数字 12,生成的字节是 [49, 50, 13, 10],为什么?
import java.io.*;
public class exp{
public static void main(String[] args){
InputStream is = null;
try{
is = new FileInputStream(new File("./info.txt"));
}catch(Exception e){}
while(true){
byte b = 0;
try{
b = (byte) is.read();
}catch(Exception e){}
if(b == -1) break;
System.out.println(b);
}
}
}
12
作为二进制的 32 位 00000000 00000000 00000000 00001100
bytes 应该是 [0, 0, 0, 12]
而不是 [49, 50, 13, 10]
.
它是 ASCII。
49 == '1'
50 == '2'
13 == '\r' //carriage return
10 == '\n' //end of line
因为文件是文本文件,不是二进制文件。一切都是正确的,如果文件是在 Linux 机器上写入的,它将只有四个字符。