2016-07-21 22 views
0

Tomcatを使ってEcho Studio 3と呼ばれる古いフレームワークを使用するJavaプロジェクトでcsvファイルを生成してダウンロードしようとしています。Javaはcsvファイルを生成してダウンロードします

は、ここに私のコードです:

コードがトリガされる
List<Object> reportCount = this.getReport(accountId); 
ArrayList<String[]> result = new ArrayList<String[]>(); 
for (Object list: reportCount) { 
    String[] rowReport = (String[]) list; 
    result.add(new String[]{String.valueOf(rowReport[0]),String.valueOf(rowReport[1])}); 
} 

File filename = new File("report.csv"); 
FileWriter fw = new FileWriter(filename); 
fw.append("Name"); 
fw.append(','); 
fw.append("Count"); 
fw.append('\n'); 
for (String[] ls: result){ 
    fw.append(ls[0].toString()); 
    fw.append(','); 
    fw.append(ls[1].toString()); 
    fw.append('\n'); 
} 
try { 
    fw.flush(); 
    fw.close(); 
} catch (Exception e) { 
    System.out.println("Error while flushing/closing fileWriter !!!"); 
    e.printStackTrace(); 
} 

が、何も起こらない、と私は何のエラーメッセージが表示されていません。デバッグモードを実行すると、結果はデー​​タで満たされ、ブレークポイントのパスはflush()をスローし、エラーは発生せず、クライアントは生成されたファイルを取得していません。

答えて

0

ファイルを現在の作業ディレクトリに書き込んでいます。これは、Tomcatのようなコンテナでプログラムを実行している場合には期待しないことかもしれません。

プログラムが呼び出しを実行したのを見て、コードパスが絶対パスに変更され、コードが実際に正しく書き込まれていることを確認して、その仮説をテストします。そうであれば、それは単なるパスの問題です。

また、現在の作業ディレクトリ1を見つけるためにコールを追加することもできます。

関連する問題