csv
ファイルを作成し、そのファイルにデータを書き込み、その内容をサーバーに送信するJavaプログラムを作成しました。ファイルシステムに保存せずにCSVファイルを作成する
ローカルでは、すべて正常に動作します。しかし、問題は私がサーバーへの書き込みアクセス権を持っていないということです(許可が拒否されました)。
したがって、私はchmod 777
を実行できません。
csv
ファイルをファイルシステムに保存せずに作成する方法を探しています。フローやストリームに書き込むようなもの。私はそれがどのように機能するのか本当に分かりません。 助けてください?
public void exportAllToCSV(@PathVariable int id,HttpServletResponse response) throws IOException
String csvFile="test.csv";
File file = new File("test.csv");
//some treatments to get datas (headers and values)
FileWriter writer = new FileWriter(csvFile);
CsvBuilder.writeLine(writer, headers);
CsvBuilder.writeLine(writer, values);
writer.flush();
writer.close();
response.setContentType("text/csv");
response.setHeader("Content-Disposition", "attachment; filename=" + csvFile);
final BufferedReader br = new BufferedReader(new FileReader(file));
try {
String line;
while ((line = br.readLine()) != null) {
response.getWriter().write(line + "\n");
}
} finally {
br.close();
}
try {
file.delete(); // I delete the file
} catch (Exception e) {
e.printStackTrace();
}
を持っているStringBuilderWriterを使用することができますか? CSVファイルを 'response.getWriter()'に直接書くのはなぜですか? –
ファイルを保存せずに書き込むことはできません。 「保存」とは、ファイルを書き込んで閉じてしまうことを意味します。 – rajah9
なぜあなたはBufferedReaderでファイルを読んで、everylineをArrayListに入れて、それを処理しないのですか?あなたはファイルを書きません。あなたはあなたのオペレーティングメモリで作業しています。保存せずに「書き込む」ことはできません。「書き込み」は、その名前のとおり、ディスクに書き込むメソッドです。 – Amnor