2012-04-24 11 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初心者です。ファイルを1行ずつ解析したい場合は、FileではなくDataストリームが必要であることを思い出しています。それは間違った前提だと教えてください。 :) – dwwilson66

+0

あなたはどういうことを言っていますか?これはあなたが投稿したコンパイラエラーです。それは例外ではありません!エラーメッセージを聞いて、あなたのメソッドで例外を宣言してください。 –

+0

これは例外ではなく、コンパイルエラーです。例外をキャッチまたはスローする必要があります。これを理解できない場合は、[Exception Tutorial](http://docs.oracle.com/javase/tutorial/essential/exceptions/index.html)を参照してください。 –

答えて

4

代わりの

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

あなたがIOHelperを試みることができる

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

@ DavidWallace- a-haは良く見えますが、今はwhile((inputLine = br.readLine())!= null) 'でIO例外が発生します。 'readLine'は' BufferedReader'メソッドです...構文的にここで間違っているものは何ですか? – dwwilson66

+0

@dwwilson:元の投稿を編集し、コードの試行と例外テキストを表示する必要があります。しかし、これらがバニラのテキストファイルであれば、ある種のReaderがうまくいくはずです。 –

+0

スタックトレースを転記できますか? –

0

を書きますgithubのJava Helperからディレクトリ内のすべてのファイルを取得し、ファイルを文字列に読み込む方法があります。

関連する問題