• ベストアンサー

ファイルへの入力と出力について

はじめまして。java初心者の初投稿です。 ブラウザ画面のフォームから文字を入力してボタンを押下すると.txtファイルに書き込まれていく、という処理にてこずってます。アプレットからは操作できないと過去の記事に書かれていました。 いろいろ方法はありそうなのですが・・・自分の力では時間ばかり費やしています。どうかよろしくお願いします。

  • jkkm
  • お礼率76% (16/21)
  • Java
  • 回答数3
  • ありがとう数3

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

  • ベストアンサー
  • sasadora
  • ベストアンサー率68% (59/86)
回答No.2

サーブレットなんですか。じゃあ簡単ですよ。 基本的には、次のような手順になります。 ・フォームを表示する。 ・フォームからPOST,GETされたデータを受け取る(HttpServletRequest.getParameter()) ・ファイルに書き込む。(FileWriterなど) 簡単に書くと、こんな感じで。 PrintWriter pw = null; try {   pw = new PrintWriter(new FileWriter("test.txt"));   pw.println(request.getParameter("text")); //フォームからPOSTされたデータ } finally {   if (pw != null){     pw.close();   } } ファイルの読み書きについては、java.ioパッケージの APIリファレンスを参照してください。

jkkm
質問者

お礼

度々お返事有難うございます。

jkkm
質問者

補足

うーむぅ。ということはhtmlファイルの記述はどのような感じになるのでしょうか?ほんとに時間のあるときにでもよろしければお願いできますか?とりあえずがんばってみます。有難うございました。

その他の回答 (2)

  • sasadora
  • ベストアンサー率68% (59/86)
回答No.3

プログラムはどう動くか想像なんですが、 HTMLファイル(FORM表示)→Servlet呼び出し→ファイル書き込み という感じでしょうか。 HTMLファイルの記述は、 <HTML> <BODY> <FORM ACTION="サーブレットURL" METHOD="POST"> <INPUT TYPE="text" NAME="text"> <INPUT TYPE="submit" VALUE="SEND"> </FORM> </BODY> </HTML> とかこんな感じ。このHTMLファイルから、サーブレットに対して、 入力データをPOSTするわけです。

jkkm
質問者

お礼

長々と今日はいろいろと教えていただき有難うございました。親切で丁寧な説明に大変感謝してます。いろいろな事が出来てjavaってすごいですね。

  • sasadora
  • ベストアンサー率68% (59/86)
回答No.1

情報が少なすぎで、なにをターゲットにしているのかわからないのですが、 サーバ上のファイルに書き込みたいのですか? それともクライアントのファイルに書き込みたいのですか? あと、アプレットなのですか?サーブレットなのですか? それが分からないと、詳しく書きようがないので、とりあえずさわりだけ。 ○サーバ上のファイルに書き込みたい。サーブレットで。 これは普通にフォームからPOST, GETで送信されたデータを、 ファイルに書き込めばよいです。 ○サーバ上のファイルに書き込みたい。アプレットで。 これはアプレット単体では無理です。アプレットがクライアントで動作するので。 対応策としては、ファイルを書き込むサーブレットなりCGIなりをサーバで用意し、 アプレットからデータを送信し、サーバのプログラムがファイルを書き込む ということをすれば、可能です。 ○クライアントのファイルに書き込みたい。サーブレットで。 これは無理です。せいぜいサーバ上で作成したファイルを、 クライアントにダウンロードさせるくらいでしょう。 ○クライアントのファイルに書き込みたい。アプレットで。 難しいですが、不可能ではないです。 私もやったことはないのですが、署名付アプレットというのを作成し、 ユーザが署名を確認し、アプレットの動作について了承することで、 ファイルアクセスも可能になるようです。 クライアントのファイルに書き込むのはセキュリティ的に 厳しい制限が加わるので難しいことが多いです。

jkkm
質問者

お礼

すぐに教えていただいて有難うございます。

jkkm
質問者

補足

初心者なもので・・失礼しました。 サーバ上のファイルにサーブレットで書き込む処理を行いたいのですが具体的なプログラム記述はどのようになるのでしょうか?

関連するQ&A

  • アクセスのフォームの必須項目入力確認方法について

    アクセスのフォームの必須項目を入力していないと「閉じる」ボタンを押下したとき、「○○入力項目に入力がない」というエラーメツセージが出るようにし、入力完了後、「閉じる」ボタンを押下すると閉じるようにしたいのですが・・・

  • ブラウザのフォームに自動入力させたい。

    あるサイトをブラウザで見た時に、ページのブランクのフォームが用意されていてボタンを押すと、値(例えば名前とか住所)が自動入力される、という処理はどうしたら、実装できるでしょうか?また、それはjava、あるいはjavascriptで実装できるでしょうか? イメージとしてあるのは、下記のページの商品申し込みページのWeb会員としてログインした後の情報の入力です。 https://umaimizu.jp/index.aspx よろしくお願いします。

  • JavaScript → Bean(DB接続)

    JSPを使用して、テキストフィールドに記述、ボタンを押下するとDBに登録されるというのを作りたいと思っています。 最初は、ボタンの押下(JavaScript)→クラスの呼び出し(JSP)→Beanとやろうと思っていたんですが、JSPはサーバー側の処理なのでできませんとのことで、JavaScript→Beanを考えています。 ・・・が!!JavaScriptでJavaは使用できるのでしょうか? 検索をしたんですが、アプレットの関数を呼び出すことができるという事以外分かりませんでした。 では回答よろしくお願いします<(_ _)>

  • PC上の処理って自動化できますか?

    Win初心者なのでとんちんかんな質問をしてすいません。 どなたか教えてください。 Windowsで以下のような一連の処理を自動化することってできるものでしょうか?また、できるならどのようなやり方をすればよいのでしょうか? 1 文書ファイルを開く(txt,docなんでも。1行ずつ文字列が記述されている) 2 ブラウザを起動し、特定のURL(フォーム送信するための入力画面)にアクセス。 3 1つ目のtextboxに文書ファイルの1行目の文字列を入力 4 タブ移動で2つ目のtextboxに2行目の文字列を入力 5 5つ目のtextboxまで同処理を繰り返して、送信ボタンを押下 6 ブラウザを更新して、再度1つ目のtextboxに6行目の文字列を入力 以上のような処理をofficeのマクロのように自動化することってできるのでしょうか? お願いいたします。

  • javaアプレットで簡単なもの

    学校のレポートでjavaアプレットでボタンが複数あって、そのボタンによって動作の異なるアプレットを作ることになりました。 でも、JAVAアプレットは、 Graphicsクラスとボタン、イベント処理しか習ってません。 したがって、ホントに簡単なプログラムしか組めないと思うのですが、なにか面白いプログラムないですか?? 例では、小さな丸がボタンよって方向を変えながら動くものでした。(これぐらいのレベルです。) あと、これだけの知識で簡単な電卓って作れますか? 回答よろしくお願いします。

    • ベストアンサー
    • Java
  • アプレットとテキストファイル

    Java初心者です. appletでゲームのようなものを作ろうと思い, テキストファイル(*.txt)から文章を読み込んで 表示するようなプログラムを書きました. eclipseのアプレットビューアではちゃんと表示されるのですが, 自分でhtmlを書いてブラウザで表示させようとすると, このテキストファイルが読み込まれないのか,以下のようなエラーが ブラウザの下に出ました. java.security.AccessControlException: access denied(java.io.FilePermission ./res/aaa.txt read). これはどういうことなんでしょうか. eclipseのアプレットビューアを使ったら, プロジェクトフォルダに"java.policy.applet"というものができていたので, これをうまく使えたらいいのかとも思うんですが, どうもよくわかりません. ご回答お待ちしています. ちなみにOSはmac OSXで, フォルダの構成は, プロジェクトフォルダ  ー/src/*.java,*.class  ー/res/aaa.txt です.

  • ブラウザ経由でローカルアクセス

    ブラウザ(IE)経由でローカルPCのファイルにJavaよりアクセス(ActiveXではなく)することを検討しています。以下の手順で考えていますが、実装可能でしょうか? 1.画面上のあるボタンを押下 2.JREとJavaアプリの両方を続けてインストール 3.インストール終了後、Javaアプリを実行 4.結果を画面表示 ※基本的にブラウザ上の操作は「1」のボタン押下のみであとは  「2」のインストール時に「次へ」程度で済ませたいです。

    • ベストアンサー
    • Java
  • TXTファイルの強制保存?

    保存ボタンを押下時にtxtファイルを作成しダウンロードする画面を作りたいのですがwindows2000では正しく動いたのですがwindowsXPでは作成したtxtの内容がブラウザ上に表示されダウンロードウィンドウが正しく表示されません。ブラウザの設定でしょうか? また、ブラウザ上で表示できるデータでも強制的にダウンロードウィンドウを開かせることは可能でしょうか?

    • ベストアンサー
    • HTML
  • JAVAアプレットの仕組みについて

    HTMLに埋め込まれたJAVAアプレットが画像を表示するように記述されている場合、JAVAアプレットは画像をサーバーからダウンロードして表示しているんですよね? JAVAアプレットがサーバーからファイルをダウンロードできるように、 JAVAアプレットがサーバー上にファイルを作り出すこともできるのですか? 今、計算プログラムをダウンロードで配布して、実行して得られた計算結果を投稿してもらう仕組みを作っているのですが、 JAVAアプレットにサーバー上のファイルを操作する能力があるのなら、JAVAアプレットを読み込み実行するだけで配布と投稿の作業が一まとめにできてしまうと思いました。 JAVAアプレットはサーバー上のファイルをどこまで操作できるのでしょうか?

    • ベストアンサー
    • Java
  • 問い合わせ完了ページでの二重送信防止法

    過去の投稿で同内容のものがあることを確認はしたのですが、そこで書かれていた方法がうまく動作しなかった(二重送信されてしまった)ので、再度質問させてください。 問い合わせフォーム(inquire.html)にて、送信ボタン押下後、 「お問合せ受付完了」のページ(inquire_send.php)を表示する流れになっているのですが、この受付完了のページにてブラウザの更新ボタンを押下すると、 「情報を再送信しないとページを更新できません」 というダイアログが表示され、同内容のメールを送信してしまうことになります。 この、更新ボタン押下時の二重送信を防止したいのですが、以前の記事に書かれていた「header("Location: ××.php");」では、思い通りの動作になりませんでした。 他に何か方法がありましたら、教えていただきたいです。 宜しくお願いします。

    • ベストアンサー
    • PHP

専門家に質問してみよう