gpt4 book ai didi

java - 从 FileInputStream 获取字符

转载 作者:行者123 更新时间:2023-11-29 04:44:17 24 4
gpt4 key购买 nike

1和2的公共(public)代码

    String gt="hello master how the heck are you:";
byte o[]=gt.getBytes();
FileOutputStream aab=new FileOutputStream("first.txt");
aab.write(o);
aab.close();
FileInputStream nm=new FileInputStream("first.txt");

1:::

      while((nm.read()!=-1)
out.print((char)(nm.read());

2:::

      int y=0;
while((y=nm.read())!=-1)
out.print((char)y);

我想问一下为什么这两个(1 和 2)给出不同的输出。我花了很多时间来找到这个但我仍然找不到。如果可以的话请帮助我。 1 的预期输出应与 2 相同,但 1 给出了意外输出。请解释这一点 ..

谢谢

最佳答案

这里

  1. while((nm.read()!=-1)
2. out.print((char)(nm.read());

在两个不同的地方从流中读取字节,但只打印一个字节:

  • 在第 1 行(while)中从流中读取一个字节(第一个),
  • 然后下一个字节(第二个)在第 2 行(打印)中读取 - 并且只打印这个字节

然后整个循环重复:

  • 下一个字节(第三个)在第 1 行中读取,
  • 和第 2 行中的后续字节(第四个)- 并且打印此字节。

但是在这里:

int y=0;
while((y=nm.read())!=-1)
out.print((char)y);

流中的字节只在一个地方读取 - 在 while 指令中,并且所有字节都被打印出来。

关于java - 从 FileInputStream 获取字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37903991/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com