2012-04-24 102 views
0
public class parseFiles 
{ 
    public static void main(String... aArgs) throws FileNotFoundException 
    { 
     File startingDirectory= new File("CGT"); 
     List<File> files = FileListing2.getFileListing(startingDirectory); 
     for(File file : files) 
     { 
      System.out.println(file); 
     } 
    } 
    <other methods to supply the file listings, etc.> 
}   

這就是我現在的位置:這很好,並且具有全路徑輸出到控制檯的文件列表沒有任何問題。現在,我想要獲取輸出中列出的每個文件,並逐行讀取它們。如何將列表傳遞給Java輸入流?

BufferedReader br = new BufferedReader(new FileReader(file)); 
String inputLine; 
String desc = ""; 
String docNo = ""; 
// 
while ((inputLine = br.readLine()) != null) 
{ 
    int testVal=0; 
    String delim = ","; 
    int stringMax = inputLine.length(); 
    if(inputLine.startsWith("Description")) 
    {desc = inputLine.substring(13,inputLine.length());} 
else 
    if(inputLine.startsWith("Reference Number")) 
    {docNo = inputLine.substring(20,inputLine.length());} 
    String outputString = desc+delim+docNo; 
    //   
    <write series of output strings to flat file> 
    // 
} 

while ((inputLine = br.readLine()) != null)保持與以下錯誤踢回:

FileListing2.java:22: error: unreported exception FileNotFoundException; must be 
caught or declared to be thrown 
    List<File> files = FileListing2.getFileListing(startingDirectory); 
              ^
FileListing2.java:30: error: unreported exception FileNotFoundException; must be 
caught or declared to be thrown 
         BufferedReader br = new BufferedReader(new FileReader(file)); 
                  ^
FileListing2.java:43: error: unreported exception IOException; must be caught or 
declared to be thrown 
         while ((inputLine = br.readLine()) != null) 
                ^
3 errors 
+0

@ DavidWallace-就像我說的,我從我所知道的東西中複製了代碼。我是一個java I/O新手,我似乎回想起如果我想逐行解析一個文件,我需要一個數據流而不是File。如果這是一個錯誤的假設,讓我上學。 :) – dwwilson66 2012-04-24 12:20:39

+0

你在說什麼?這是你發佈的編譯器錯誤。這不是一個例外!只需聽取錯誤消息並在您的方法上聲明異常。 – 2012-04-24 12:43:39

+0

這不是一個例外,而是一個編譯錯誤。您需要捕獲或拋出異常。如果你不明白這一點,請查看[例外教程](http://docs.oracle.com/javase/tutorial/essential/exceptions/index.html)。 – 2012-04-24 14:13:24

回答

4

而不是

DataInputStream in = new DataInputStream(file); 
BufferedReader br = new BufferedReader(new InputStreamReader(in)); 

BufferedReader br = new BufferedReader(new FileReader(file)); 
+0

@ DavidWallace-a-ha看起來不錯......但是現在,我在'while((inputLine = br.readLine())!= null)'得到了一個IO異常。 'readLine'是一個'BufferedReader'方法...你在這裏看到其他的語法錯誤嗎? – dwwilson66 2012-04-24 12:26:21

+0

@dwwilson:你應該編輯你的原文,並顯示你的代碼嘗試和你的例外文本。但如果這些是簡單的香草文本文件,那麼某種類型的閱讀器應該工作得很好。 – 2012-04-24 12:28:49

+0

你可以發佈堆棧跟蹤嗎? – 2012-04-24 12:28:55

0

你可以嘗試IOHelper從github上的Java Helper。有一些方法可以獲取目錄中的所有文件並將文件讀取到字符串中。

相關問題