【问题标题】:How do I pass a list to a Java input stream?如何将列表传递给 Java 输入流?
【发布时间】:2012-04-24 12:15:42
【问题描述】:
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.>
}           

这就是我现在所处的位置:这很好用,带有完整路径的文件列表输出到控制台没有任何问题。现在,我想获取该输出中列出的每个文件,并逐行读取它们。

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

【问题讨论】:

  • @DavidWallace- 就像我说的,我从我知道有效的东西中复制了代码。我是一个 java I/O 新手,我似乎记得如果我想逐行解析文件,我需要一个数据流而不是文件。如果这是一个不正确的假设,请教我。 :)
  • 你在说什么?这是您发布的编译器错误。也不例外!只需听错误消息并在您的方法上声明异常即可。
  • 这不是异常,而是编译错误。您需要捕获或抛出异常。不明白的请看Exception Tutorial

标签: java file-io datainputstream


【解决方案1】:

代替

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

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

【讨论】:

  • @DavidWallace-a-ha 看起来不错...但是现在,我在 while ((inputLine = br.readLine()) != null) 收到了 IO 异常。 readLineBufferedReader 方法...您在这里看到其他语法错误吗?
  • @dwwilson:您应该编辑原始帖子并显示您的代码尝试和异常文本。但如果这些是纯文本文件,那么某种 Reader 应该可以正常工作。
  • 你能发布堆栈跟踪吗?
【解决方案2】:

您可以在 github 上尝试来自 Java HelperIOHelper。有一些方法可以获取目录中的所有文件并将文件读取到字符串中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-03
    相关资源
    最近更新 更多