2012-02-06 3 views
3

Привет Развернутые следующий код в затменииjava.io.FileInputStream. <init> (Unknown Source)

//import cs1.Keyboard; 
import java.util.*; 
import java.io.*; 
public class Parser 
{ 
    public static void main (String[] args) throws IOException 
    { 
     String [][] addyArray = new String[50][4]; 
     for (int j=0; j<50; j++) 
     { 
      for (int k=0; k<4; k++) 
      { 
       addyArray[j][k] = "\n"; 
      } 
     } 
     FileReader inFile = new FileReader ("sample.txt"); 
     BufferedReader in = new BufferedReader (inFile); 
     String line = ""; 
     int i = 0, a = 0; 
     while(in.ready()) 
     { 
      line = in.readLine(); 
      while (line != null && line != "\n") 
      { 
       addyArray[i][a] = line; 
       line = in.readLine(); 
       a++; 
       if (line == null) line = "\n"; 
      } 
      i++; 
      a = 0; 
     } 
     for(int j=0; j<3; j++) 
     { 
      for(int k=0;k<4;k++) 
      { 
       System.out.println((j+1) + "-" + (k+1) + " " + addyArray[j] [k]); 
      } 
     } 
    } 
} 

Я получаю следующее сообщение об ошибке на этой линии FileReader inFile = new FileReader ("sample.txt");

at java.io.FileInputStream.<init>(Unknown Source) 
at java.io.FileInputStream.<init>(Unknown Source) 
at java.io.FileReader.<init>(Unknown Source) 
at Parser.main(Parser.java:19) 

Я поместил sample.txt файл в той же папке, где пакет файл исходного кода был помещен. Я не уверен, почему я получаю эту ошибку. Не могли бы вы помочь мне. Спасибо

+0

Что фактическое исключение, которое вы получаете? – NPE

ответ

3

При запуске программы в Eclipse, в текущем рабочем каталоге по умолчанию, это корневой каталог вашего проекта. У вас, вероятно, есть подкаталог для вашего исходного кода, поэтому, если вы поместите в него «sample.txt», он не будет найден.

Либо откройте файл как «< подкаталог> /sample.txt», либо (желательно) переместите файл в корень вашего проекта Eclipse.

Ввод файла в исходный код применим только в том случае, если это «ресурс»; то есть некоторая информация, которая не нуждается в модификации во время выполнения, но не является выражением в качестве исходного кода Java. Например, локализованный текст и изображения для пользовательского интерфейса - это ресурс, а пользовательская конфигурация для размеров и позиций окна - нет. Если файл рассматривается как ресурс, его можно загрузить с помощью метода getResourceAsStream() из Class.

+0

Согласен. getResourceAsStream() - мой предпочтительный метод захвата файлов типа ресурсов. – JohnnyK

0

Он должен находиться в папке ресурсов

src/main/java ... same package 
src/main/resource ... same package 
1
new BufferedReader(new InputStreamReader(this.getClass().getClassLoader().getResourceAsStream("sample.txt"))); 

попробуйте этот код, чтобы прочитать файл, который находится в том же каталоге