教程上说read返回的是整形数据,可是这个数据代表什么意思呢?import java.io.*;
public class FileApp {
public static void main(String[] args){
byte[] buffer=new byte[2056];
try{
FileInputStream fileIn = new FileInputStream("1.txt");
int bytes=fileIn.read();
System.out.println(bytes);
}
catch (Exception e){
System.out.println(e);
}
}
}结果得到的是49。
说明:1.txt的内容是“12345678”
public class FileApp {
public static void main(String[] args){
byte[] buffer=new byte[2056];
try{
FileInputStream fileIn = new FileInputStream("1.txt");
int bytes=fileIn.read();
System.out.println(bytes);
}
catch (Exception e){
System.out.println(e);
}
}
}结果得到的是49。
说明:1.txt的内容是“12345678”
楼上的好快哟
刚才把1.txt的内容改为“哈哈12345678”,经强制转换后,结果返回的是“?”不强制转换返回185,显然不是ASCII码。
还是搞不懂。
是这样的,如果是中文的话,char转换就不会正常显示了。
GB2312中汉字的编码范围为,第一字节0xB0-0xF7(对应十进制为176-247),第二个字节0xA0-0xFE(对应十进制为160-254)。所以中文的时候是根asc码没关系。
若是字节文件,直接读出其中的字节。流结束是-1.
看来read返回值和文件的编码方式有关系。各位能否也试试,看看我的猜想是否正确?