File file = new File("C:\\Users\\sunkai\\Desktop\\hello.txt"); FileInputStream fileInputStream = new FileInputStream(file); int[] b ; while ((b=fileInputStream.read())!=null) { System.out.println((char)b); }报错
时间: 2024-02-07 13:03:56 浏览: 71
matplotlib-3.6.3-cp39-cp39-linux_armv7l.whl
在Java中,`FileInputStream.read()`方法返回的是一个字节的整数表示,如果将其直接赋值给int数组`b`,会导致类型不匹配的错误。另外,`read()`方法返回-1表示已经读到了文件的末尾,因此需要使用`while((b=fileInputStream.read())!=-1)`来判断是否到达文件末尾。
如果要读取整个文件的内容并输出,可以使用以下代码:
```java
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
public class Main {
public static void main(String[] args) {
File file = new File("C:\\Users\\sunkai\\Desktop\\hello.txt");
FileInputStream fileInputStream = null;
try {
fileInputStream = new FileInputStream(file);
int b;
while ((b = fileInputStream.read()) != -1) {
System.out.print((char) b);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (fileInputStream != null) {
try {
fileInputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
```
在这个例子中,首先创建一个FileInputStream对象并打开要读取的文件。然后,使用一个循环读取文件中的每个字节,并将其转换为字符类型输出。最后,使用`finally`块关闭文件流。
注意,在使用文件流时,应该总是使用`try-catch-finally`块来确保文件流能够被正确关闭,避免资源泄漏。
阅读全文