- - PR -
ファイルに文字が書き込まれない
投稿者 | 投稿内容 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2009-04-04 12:37
出来れば手順は箇条書きで書いていただけると有難いです。
自分と同じ現象を起こすのに必要な手順をもらすことなく書いて頂けると手間がはぶけて嬉しいです。 ということで、私の所で以下のような手順でやってみました。 eclipse3.4(日本語化してない) jdk1.6 u10 Windows Vista Business SP1 1)ファイルが消せない問題について 1.Dynamic Web Projectを作成する。 プロジェクト名はdeletefileを指定する。 Target Runtimeには、Apache Tomcat6.0を指定する。 2.WebContentにsample.jspという名前のJSPを作成する。 3.sample.jspの右クリックをしてdeleteを選択する。 4.Are you sure you want to delete 'sample.jsp' from the file system?と表示された ダイアログが表示されるのでOKを押す。 5.Project Explorer上からsample.jspが消える。 以上が私の環境で試してうまくいった手順です。 違う場所を教えて下さい。 2)JSPからファイルを書き込んでもeclipse上で見ると空のままになるについて 1.Dynamic Web Projectを作成する。 プロジェクト名はwritefileを指定する。 Target Runtimeには、Apache Tomcat6.0を指定する。 2.WebContentにwrite.jspという名前のJSPを作成する。 3.write.jspの中身を以下のようにする。
4.write.jspの右クリックメニューからRun As → Run on Serverを選択してJSPを ブラウザで表示させる。 5.以下の内容がブラウザに表示される。 [ワークスペースへのパス]\\.metadata\\.plugins\\org.eclipse.wst.server.core\\tmp0\\wtpwebapps\\writefile\\test.txt ということで、JSPで書き込んだファイルがEclipse上で更新されないのは、そもそも出力先が プロジェクトのWebContentの下に書いて無いというのがうちでの試験結果でした。 | ||||||||||||||||
|
投稿日時: 2009-04-04 16:59
すみません。キャッシュに関しては勉強不足でして、今いろいろと調べてみましたが、eclipseがキャッシュしているという文章の意味が良く理解できていません。 ただ、同期に関しては分かっているつもりです。 後、コンテキストメニューが分からないのですが……できればrefleshの方法について詳細を書いて頂けないでしょうか。 これも手取り足取りになってしまうのでしょうか。 どうぞ宜しくお願い致します。
物凄い勘違いをしているのではないか、とヒシヒシと感じています。 ご明察かもしれませんが、1番は
これで削除してもエラーメッセージが表示されなかったので、というのが大きいですかね。 後、これは同期と関係あるのか分かりませんが、
これはEclipse以外からFileWriter.jspなどを実行してもEclipseには反映されないという事ですよね。 自分の場合はEclipseで実行すると指定したファイルに文字がファイルに書き込まれました。 ただ、Eclipse上ではダブルクリックして開いても何も書かれておらず、サーバーから実行すると今度は文字が書かれたファイルが表示されました。 こんな感じです。いろいろな意味で知識足らずで大変すみませんでした。 | ||||||||||||||||
|
投稿日時: 2009-04-04 20:05
違う点 ・4に書かれているダイアログボックスが表示されません。 ・5のようにファイルがプロジェクト・エクプローラーからは消えずに表示されたままです。 少し前までは削除するとworkspaceにあったファイルはゴミ箱に行きましたが、どういう訳か今ではゴミ箱にも移動しません。
私もKazukiさんのファイルを実行しました。 結果は
でした。 でも、最初の方は問題なく表示されたと書かれていた人もいます。 この状態をどうする事もできないのでしょうか。 デプロイ・パスを変更すればいいんでしょうか。 多分、何訳分からない事言ってるのとか思われているかもしれませんが、サーバーを使用する以上は仕方の無い事なのでしょうか。 [ メッセージ編集済み 編集者: dejavu 編集日時 2009-04-04 22:02 ] | ||||||||||||||||
|
投稿日時: 2009-04-05 00:13
プロジェクトエクスプローラ上の JSuper 配下にある test.txt は何時
どうやって作成された(した)のですか?まさか自分でファイルの追加 とかで作ったわけじゃないよね? application.getRealPath("test.txt") をやってる限り、この場所に保存されることは ぜったいありません。 エクスポート・インポートしないで、もう一回WEBプロジェクト作って、でじゃぶー.jsp だけコピって持ってきてやってみなされ。 >最初の方は問題なく表示されたと書かれていた人もいます。 最初の方は関係ないです。今おこっていることが全て。つっても君が「最初の方」の 方々のアドバイスを曲解しているだけだとは思いますが。 >サーバーを使用する以上は仕方の無い事 ワークスペース直下にファイルが作られるようにするための努力は必要だと 思いますね。 例えば、 でじゃぶー.properties ファイルに、 でじゃぶー.debug = true でじゃぶー.workpath = C:/workspace/JSuper と書いておいて、 これを、application.getRealPath の代わりに読み込んで test.txt にくっ付けて あげるとか、ね。もちろん、でじゃぶー.debug が true の時だけね。 確か、application.getRealPath 使わないでやってあげれば、プロジェクトの カレントに test.txt が作られるんじゃないかな? | ||||||||||||||||
|
投稿日時: 2009-04-05 01:20
test.txtは何でWebContentの下に作りたいんですか?
データを引き継いだりしたいという理由なら、SessionやDBに保持させておくのがいいと思います。 削除できない件については、動的Webプロジェクト以外ではどうですか? うまくいきます? | ||||||||||||||||
|
投稿日時: 2009-04-05 02:12
そうです。自分で作成しました。
とても肝心な事なんですけど、ここでおっしゃられているでじゃぶー.jspとはFileWriter.jspの事で宜しいのですか。 でも、application.getRealPath("test.txt")では保存は不可能なんですよね。
ここは何となく分かります。
正直物凄く難解です。 でじゃぶー.propertiesファイルを作成するのですか。 まず、propertiesファイルについて調べないといけませんね。 | ||||||||||||||||
|
投稿日時: 2009-04-05 08:52
何か今一しっくり来ないというか、以前はapplication.RealPath("test.txt")のパスの指定先がworkspaceだったんですよね。
これですよ。だから、まだ直ってない気がするのですかね。 でも、Kazukiさんが証明したとおり、ぴあちゃんの言われるとおり、今の状態が正常なんですよね。 これでいいんですよね。 ちなみに、Kazukiさんはpropertiesファイルとかは興味ないですか。 今一、よく分からなくて何かpropertiesファイル用のエディターがプラグインできるみたいなんですけど、一応インストールしましたが、今一良く分かりません。 あの今、propertiesファイルを調べてる中、混同しそうなのですが、java.util.Propertiesクラスとは別物ですよね。 何かASCUコンバータとか訳分からないのが出てきてパニックに火に油を注いでいる状況です。 何て言えばいいのでしょうか……。 元に戻りたいけど、戻れない……。 やる事は他にも沢山あるので……。 ほとほと困りました。 でも、propertiesファイルも気になるし。 本みたいのが無いと自分には難しい気もするんですよね、思いっきり。 後は、ぴあちゃんさんの次のレス次第ですね。
色々試してみたら、削除は上手くできるようになりました。 原因が何だったのかはよく分かりませんが、一応直ったので一安心ですね。 後は、自分が何をしたいのか、ですよね。 何に向かって走っているのか。 そこにゴールはあるのか、みたいな感じです。 | ||||||||||||||||
|
投稿日時: 2009-04-05 09:28
1つずつ解決しましょう。
まず、ファイルが書き込まれない件について
としている部分で、application.getRealPath("test.txt")が返す文字列を表示しています。 その結果が C:\dejavu\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\JSuper\test.txt なのですから、FileWriterクラスで出力されるデータは、上記ファイルに書き込まれます。 メモ帳などで開いて確認してみてください。 |