51,412
社区成员
发帖
与我相关
我的任务
分享
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class A1{
public static void main(String[] args) {
int n=-1;
File f=new File("E:\\ch10","b.txt");
byte [] a="abcd".getBytes();
try{
FileOutputStream out=new FileOutputStream(f);
out.write(a);
out.close();
FileInputStream in=new FileInputStream(f);
byte [] tom=new byte[3];
int m=in.read(tom,0,3);
System.out.println(m);
String s=new String(tom,0,3);
System.out.println(s);
m=in.read(tom,0,3);
System.out.println(m);
s=new String(tom,0,3);
System.out.println(s);
}
catch(IOException e){ }
}
}
为何输出结果是3 abc 1 dbc。
因为你向文件写了4个字节, 读取的时候一次读取3个字节,第一次读取的时候3 个字节,内容是abc,第二次读取的时候该文件只有1个字节的内容,所以只读取了1个字节的信息,所以byte[0]的内容被替换,后面的不变,输出变为dbc