小白求解答

Flame0。 2021-06-13 15:42:34
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。

...全文
780 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_39936465 2021-06-17
  • 打赏
  • 举报
回复 1

因为你向文件写了4个字节, 读取的时候一次读取3个字节,第一次读取的时候3 个字节,内容是abc,第二次读取的时候该文件只有1个字节的内容,所以只读取了1个字节的信息,所以byte[0]的内容被替换,后面的不变,输出变为dbc

51,412

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧