• ベストアンサー

サーバー上のファイル?

以下のようなソースを用意しました。 これでFileRead.csvというファイルが 作成されたはずです。 しかし、そのファイルがどこにも 見当たりませんし、 入っているはずのstrlinesという 文字列も入っていません。 どこが悪いのでしょうか? また、ファイルはどこにあるのでしょうか? PrintWriter writer = null; writer = new PrintWriter(new BufferedWriter(new FileWriter("FileRead.csv"))); writer.println("strlines"); writer.close();

質問者が選んだベストアンサー

  • ベストアンサー
  • fortranxp
  • ベストアンサー率26% (181/684)
回答No.4

いろいろ検討しましたがサーバー上にあるFileReadと いうかサーバー上に記録したFileReadを クライアントでダウンロードしたいという感じでしょうか。 WriteFile5.jsp <%@ page contentType="text/html; charset=Shift_JIS" import="java.io.*" %> <% try { String filename = "C:\\FileRead.csv"; // コンテンツ タイプを "APPLICATION/OCTET-STREAM" に設定します。 response.setContentType("APPLICATION/OCTET-STREAM"); // http content-disposition ヘッダーを初期化し // 添付ファイルと既定のファイル名 "myFile.txt" を // 指定します。 String disHeader = "Attachment;filename=\"FileRead\""; response.setHeader("Content-Disposition", disHeader); // ファイルをバイト単位で応答オブジェクトに転送します。 File fileToDownload = new File(filename); FileInputStream fileInputStream = new FileInputStream(fileToDownload); int i; while ((i=fileInputStream.read())!=-1) { out.write(i); } fileInputStream.close(); out.close(); }catch(Exception e) // ファイル IO エラー { e.printStackTrace(); } %>

参考URL:
http://www.microsoft.com/japan/msdn/asp.net/using/migrating/jspmig/phase1/aspnet-jspmig-downloadinganduploading.aspx
japan_3
質問者

お礼

教えていただきありがとうございました。 HTTP protocolについて知識がほとんど皆無に近く、 ソースを直す能力すら無い状態です。 とりあえずコンテクストを 修正してtry~catchを追加する ことでうまくいきました。 つたない説明でよく理解してくれたと 感激です。 ありがとうございました。

その他の回答 (3)

noname#18558
noname#18558
回答No.3

まったくやりたことが見えてこないんですが、とりあえず問題は解決したのでしょうか? ダウンロードと、この質問の内容は無関係ですよ。 ダウンロードというのは、サーブレットからのことでしょうか。 生成したCSVファイルをServletResponse#getOutputStreamで取得したServletOutputStreamに出力してもダメですか?

japan_3
質問者

お礼

ご指摘ありがとうございました。 まさに、ファイルの作成とファイルのダウンロードを 分けて考えていなかったのが根本的な原因でした。 ありがとうございます。

  • fortranxp
  • ベストアンサー率26% (181/684)
回答No.2

>("FileRead.csv") フォルダ名がJavaの場合 ("C:\\Java\\FileRead.csv") のようになるのでないでしょうか。

japan_3
質問者

補足

確かにそうです。 ただ、ダウンロードする側が自分以外の場合、 どんなフォルダを作っているかわからないので C:\\Java\\FileRead.csvのような書き方が 出来るのかどうか不安なのです。 大丈夫なのでしょうか??

noname#18558
noname#18558
回答No.1

例外も発生してないのであれば、おそらくjavaコマンドを発行したルートパスになると思います。

japan_3
質問者

補足

ありました! 検索しても出てこなかったのですが・・・ ありがとうございます(ミ ̄ー ̄ミ) ただ、保存しないで開くを選ぶと白紙の エクセルファイルが出てきます。どうして 表示されないのでしょうか・・・? (j o j)

関連するQ&A

専門家に質問してみよう