package IO;
import java.io.*;
public class test {
public static void main(String[] args) throws IOException {
File f1 = new File("C:\\Users\\rs\\New folder\\myname.txt");
try {
FileInputStream fis = new FileInputStream(f1);
int i = fis.read();
System.out.print((char)i);
while((i = fis.read())!= -1) {
System.out.print((char) i );
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Run Code Online (Sandbox Code Playgroud)
我是一名新的java程序员,我在这段代码中遇到了麻烦。这段代码从我的文件(f1)中读取字节,我可以将这些字节转换为 char 并打印它们,但是这里有些东西我不明白,它是我的 while 循环中的条件。它到底意味着什么?我的意思到底是什么if ((i = fis.read()) != -1)意思???第二个问题是为什么我们要加
i = fis.read()括号???我的文件中有一个文本(1 行)。
FileInputStream的read()方法遵循以下逻辑:
从此输入流读取一个字节的数据。如果尚无可用输入,则此方法会阻塞。
该方法将返回:
数据的下一个字节,如果到达文件末尾则为 -1。
-1它的支票标志也是如此EOF。考虑到这一点,这段代码片段
while((i = fis.read())!= -1)
System.out.print((char) i);
Run Code Online (Sandbox Code Playgroud)
正在告诉我们:
1 . 分配fis.read()给变量i
2a . 如果i != -1,则打印ASCII char代表刚刚从输入流读取的整数,并继续循环。
2b . 如果i == -1,则结束循环/停止读取,因为它到达了文件末尾。
| 归档时间: |
|
| 查看次数: |
2199 次 |
| 最近记录: |