澄清从Java中的简单文本文件中读取数据

时间:2014-08-13 08:55:06

标签: 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");  
        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。

3 个答案:

答案 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();