2012-04-24 107 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。有一些方法可以获取目录中的所有文件并将文件读取到字符串中。

相关问题