• ベストアンサー

JSPでテキストファイルを処理できないんですが。

こんにちは。 JSPで掲示板を作成しているのですが、テキストファイルにどうやっても書き込めません。おかしいと思い、そのテキストファイルを直接編集しようと思ったら、保存する際 『ファイルD:\Applications\Apache Tomcat 4.0\webapps\coreservlets\keijiban2.txtを編集できません。パスおよびファイル名が正しいか確認してください。』 という、メッセージダイアログが開いてしまいます。 どうしたら良いのでしょうか?教えてください。よろしくお願いします。

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

  • ベストアンサー
  • covachan
  • ベストアンサー率38% (46/120)
回答No.1

"Apache Tomcat 4.0"の文字列に空白があるためだと思います。 パスの文字列をダブルクォートとかで囲ってみてください。 つまり String filename = "\"Apache Tomcat 4.0\""のようにすると大丈夫だと思います。 理由はOSの規則によるものです。 たとえばXPの場合DOS窓で D:\Program Files\Internet Explorer\IEXPLORE.EXE とコマンドすると見つかりませんというエラーが発生しますが "D:\Program Files\Internet Explorer\IEXPLORE.EXE" と打つとIEが起動されます。 つまり空白があるとコマンドライン引数と混乱してしまうためだと思われます。 cdコマンドの場合は有効なようですが、JAVAコードの中でも有効なのかは確認していません。

kamkamkam3
質問者

お礼

どうも、ご返事ありがとうございます。 そういうこともあるんですね。しかし、私のコードはapplication.getRealPath("keijiban.txt")としているので、問題はないと思うのですが。。。 以下の部分で、パラメータを受け取り、ファイルに書き込んでいます。パラメータの取得はテスト済みです。 <% if( request.getParameter("submit") != null ) { String name, seibetu, title, comment, str = ""; name = request.getParameter("name"); seibetu = request.getParameter("seibetu"); title = request.getParameter("title"); comment = request.getParameter("comment"); str = name + "," + seibetu + "," + title + "," + comment; try { BufferedWriter bw = new BufferedWriter( new BufferedWriter(new FileWriter(application.getRealPath("keijiban2.txt")))); bw.write(str); bw.newLine(); } catch(IOException err) {} } %> なぜだか、理由がさっぱり分かりません。もし分かるようでしたら、ご返事のほう、よろしくお願いします。

kamkamkam3
質問者

補足

どうも、ありがとうございました。解決できました。 この処理の前に同一ファイルを読み込む処理をしているのですが、そこでファイルをクローズしていませんでした。 どうもすみませんでした。JSPはあまり使った事がないため、混乱してしまって。 どうもありがとうございました。またよろしくお願いします。

関連するQ&A