Java 从FileInputStream获取字符
1和2的通用代码Java 从FileInputStream获取字符,java,Java,1和2的通用代码 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:::
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);
流中的字节只在指令中的一个位置读取,而指令中的所有字节都被打印出来