我尝试使用 FileInputStream 从文本文件中获取数据,但它没有发生 这是代码。
package com.example.ex2;
import java.io.*;
import java.util.*;
public class Input {
public static void main(String args[]){
try{
FileInputStream fin=new FileInputStream("abc.txt");
int i;
FileInputStream fr;
while((i=fr.read())!=-1)
System.out.println((char)i);
fin.close();
}catch(Exception e)
{
e.printStackTrace();
}
}
}
我得到的错误是:线程中的异常" main" java.lang.Error:未解决的编译问题: 局部变量fr可能尚未初始化 我正在使用Eclipse。
答案 0 :(得分:2)
您在此声明fr
:
FileInputStream fr;
但你永远不会初始化它。您尝试在
中使用它while((i=fr.read())!=-1)
但由于fr
未初始化,因此没有可以调用.read()
的对象,因此您会收到错误。
我想您要将while
更改为:
while((i=fin.read())!=-1)
并从您的代码中删除fr
。
答案 1 :(得分:1)
首先,替换它:
while((i=fr.read())!=-1)
用这个:
while((i=fin.read())!=-1)
第二件事是你必须检查你的类文件名是否与类名相匹配,另一点是你必须在main方法旁边添加throws Exception
。
答案 2 :(得分:0)
您需要初始化fr
while((i=fr.read())!=-1)
您可以使用
FileInputStream fr // initialize this
使用
FileInputStream fr = new FileInputStream(new File("abc.txt"));
while((i=fr.read())!=-1)
但我认为你在编码时犯了一些错误。然后你应该把你的代码写成
FileInputStream fin=new FileInputStream("abc.txt");
int i;
while((i=fin.read())!=-1)
System.out.println((char)i);
fin.close();