关于用Java从简单文本文件中读取数据的说明
我正在尝试使用FileInputStream从文本文件中获取数据,但没有发生 这是代码关于用Java从简单文本文件中读取数据的说明,java,io,fileinputstream,Java,Io,Fileinputstream,我正在尝试使用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");
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中出现异常。错误:未解决的编译问题:
局部变量fr可能尚未初始化
我正在使用Eclipse。您在这里声明
fr
:
FileInputStream fr;
但你永远不会初始化它。您尝试在中使用它的
while((i=fr.read())!=-1)
但是由于未初始化fr
,因此没有可调用的对象.read()
,因此您会得到错误
我猜您想将while
更改为:
while((i=fin.read())!=-1)
并从代码中删除fr
。首先,替换此:
while((i=fr.read())!=-1)
为此:
while((i=fin.read())!=-1)
第二件事是您必须检查类文件名是否与类名匹配,另一点是您必须在main方法旁边添加
抛出异常。您需要初始化fr
while((i=fr.read())!=-1)
你可以用
FileInputStream fr // initialize this
使用
但我认为你在编码时犯了一些错误。那么您应该将代码编写为
FileInputStream fin=new FileInputStream("abc.txt");
int i;
while((i=fin.read())!=-1)
System.out.println((char)i);
fin.close();
fr未在代码中初始化。为什么要使用fr,您有fin,可以直接从fin读取。您应该使用fin
notfr
fr=new FileInputStream(Path);顺便说一句,始终关闭最后一个块中的流。
FileInputStream fin=new FileInputStream("abc.txt");
int i;
while((i=fin.read())!=-1)
System.out.println((char)i);
fin.close();