• ベストアンサー
  • すぐに回答を!

テキストファイルに書きこむにはどうすれば・・・

ここまでできました。ソーのせます。かなり長いです⇓ import java.awt.*; import java.awt.event.*; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; public class MyMemo { TextField textField; TextArea textArea; public MyMemo(){ /* フレームを作成します。*/ Container frm = new Frame(); frm.setSize(new Dimension(450,350)); /* レイアウトを設定します。*/ frm .setLayout(new BorderLayout()); /* コンポーネントを作ります。*/ textField = new TextField(25); textArea = new TextArea(25,10); /* リスナーを登録します。*/ textField.addActionListener(new TextFieldAction()); /* フレームに登録します。*/ frm.add(textField, BorderLayout.NORTH); frm.add(textArea , BorderLayout.CENTER); /* フレームを表示させます。*/ frm.setVisible(true); } /* TextFieldでリターンキーが押されたら次にフォーカスを与える */ class TextFieldAction implements ActionListener{ public void actionPerformed(ActionEvent e){ textArea.insert(textField.getText() + "\n" ,0); textField.setText(""); } } public static void main(String args[]){ new MyMemo(); } } class MyWindowListener1 extends WindowAdapter { public void windowClosing(WindowEvent e){ System.exit(0); // PrintWriterで文字列をファイルに書き出す。 // コンストラクタの第2引数にtrueを与えると,printlnの // 呼び出しが「追記」扱いになる。 try { File file = new File("c:¥¥tmp¥¥test.txt"); if (checkBeforeWritefile(file)){ PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(file))); String str = "これはテストだってば!"; pw.println(str); pw.println(str); pw.println(str); pw.close(); // 計3行を書き出して終了(追記でなければ1行だけになる) }else{ System.out.println("ファイルに書き込めません"); } }catch (IOException a) { // TODO 自動生成された catch ブロック a.printStackTrace(); } } private boolean checkBeforeWritefile(File file) { // TODO Auto-generated method stub return false; } } エラーはなく例外処理はtry~cath文でしました。 今回の題として、テキストエリアに文字を打ち込みデスクトップ画面にある memo.txtに書きこむという内容です。 これ以上よっっっくわからなくてかなり途方にくれてます。 こうしたらいいとか解決策とかお願いします。

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数1131
  • ありがとう数2

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

  • ベストアンサー
  • 回答No.1
  • askaaska
  • ベストアンサー率35% (1453/4147)

あえて聞くけど 何ができたの? そして何ができないの? ステップとしては ・テキストエリアを表示する ・入力された文字を取得する ・文字列をファイルに出力する この3段階があると思うのだけど それぞれはできたのかしら?

共感・感謝の気持ちを伝えよう!

質問者からのお礼

回答有難うございます テキストエリアを表示し入力した文字を取得までできました。 できない部分は最後の部分の文字列をファイルに出力する部分です

関連するQ&A

  • Java・ファイルへの書き込み

    はじめまして。 下記のプログラムで、以下の3つがどのような関係なのかがわかりません。 ("test1.txt")とnew FileWriterの関係 (new FileWriter("test1.txt")とnew BufferedWriterの関係 (new BufferedWriter(new FileWriter("test1.txt")と new PrintWriterの関係 どうかご教示いただきたく、よろしくお願い致します。 import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; public class Sample7 { public static void main(String[] args){ PrintWriter pw = null; try{ pw = new PrintWriter (new BufferedWriter(new FileWriter("test1.txt"))); pw.println("Hello!"); pw.println("GoodBye"); System.out.println("ファイルに書き込みました。"); }catch(IOException e){ System.out.println("入出力エラーです。"); }finally{ if(pw != null){ pw.close(); } } } }

    • ベストアンサー
    • Java
  • 小数の2進数変換について教えてください。

    10進数を2進数に変換するプログラムを作ったのですが、 小数の2進数変換が出来ません。 小数を2進数に変換するにはどうしたらいいのでしょうか? よろしくお願いします。 import java.awt.*; import java.applet.*; import java.awt.event.*; public class Applet1 extends Applet { TextField textField1 = new TextField(10); TextField textField2 = new TextField(10); Button displayButton1 = new Button("2進数変換"); public void init() { displayButton1 = new Button("2進数変換"); add(new Label("10進数")); add(textField1); add(textField2); add(displayButton1); displayButton1.addActionListener(new ToBinaryAction()); } class ToBinaryAction implements ActionListener{ public void actionPerformed(ActionEvent e) { int x = Integer.valueOf(textField1.getText()).intValue(); textField2.setText(Integer.toBinaryString(x)); } } }

    • ベストアンサー
    • Java
  • JavaのFileWriterについて

    はじめまして。 以下のようなプログラムで、new FileWriter("test1.txt")の【test1.txt】が最終的にどの親クラスのコンストラクタ(メソッド?)に渡されて処理されるのかがわかりません。 new演算子で FileWriterオブジェクトを作成した際に、importした親クラスのFileWriterクラスにあるコンストラクタが呼び出されるのだろうとは思っています。 そこで、JavaのAPIのサイトにて、クラス FileWriterの説明(http://docs.oracle.com/javase/jp/6/api/)を読みましたが、コンストラクタが複数紹介されており、下記のプログラムに当てはまるものがどれか分かりませんでした。 また、クラス FileWriterの説明ページのコンストラクタの概要にあるpublic FileWriter(File file)というコンストラクタの場合、引数リストのFileにもリンクがあり、Fileのリンク先のページであるクラス Fileの説明(http://docs.oracle.com/javase/jp/6/api/)を読みましたが、結局test1.txtがどのクラスのコンストラクタ(メソッド?)でどのように処理されているのかが分かりません。 どうかご教示いただきたく、よろしくお願い致します。 import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; public class Sample7 { public static void main(String[] args){ PrintWriter pw = null; try{ pw = new PrintWriter (new BufferedWriter(new FileWriter("test1.txt"))); pw.println("Hello!"); pw.println("GoodBye"); System.out.println("ファイルに書き込みました。"); }catch(IOException e){ System.out.println("入出力エラーです。"); }finally{ if(pw != null){ pw.close(); } } } }

    • ベストアンサー
    • Java

その他の回答 (1)

  • 回答No.2
  • askaaska
  • ベストアンサー率35% (1453/4147)

Java ファイル 出力 でぐぐればそれなりにサンプルは出てくるけど 出力のどのあたりができないかしら? ソースコードを見る限り 動くだけなら動きそうだけど。 まあ、もっともこのままだと100% System.out.println("ファイルに書き込めません"); こうなるけどね。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

自己解決しました~! どうやらSystem.exit(0); の部分のしたにファイルに書きこむソースを書いたのが一番の原因でした とりあえずソース載せます import java.awt.*; import java.awt.event.*; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; public class MyMemo { TextField textField; TextArea textArea; public MyMemo(){ /* フレームを作成します。*/ Container frm = new Frame(); frm.setSize(new Dimension(450,350)); /* レイアウトを設定します。*/ frm .setLayout(new BorderLayout()); /* コンポーネントを作ります。*/ textField = new TextField(25); textArea = new TextArea(25,10); /* リスナーを登録します。*/ textField.addActionListener(new TextFieldAction()); /* フレームに登録します。*/ frm.add(textField, BorderLayout.NORTH); frm.add(textArea , BorderLayout.CENTER); /* フレームを表示させます。*/ frm.setVisible(true); } /* TextFieldでリターンキーが押されたら次にフォーカスを与える */ class TextFieldAction implements ActionListener{ public void actionPerformed(ActionEvent e){ textArea.insert(textField.getText() + "\n" ,0); textField.setText(""); } } public static void main(String args[]){ new MyMemo(); } { try { File file = new File("c:\\memo.txt" ); if (checkBeforeWritefile(file)){ PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(file))); pw.println("これはテストだってば!"); pw.println("これはテストだってば!"); pw.println("これはテストだってば!"); pw.close(); }else{ System.out.println("ファイルに書き込めません"); // 計3行を書き出して終了(追記でなければ1行だけになる) } }catch (IOException a) { // TODO 自動生成された catch ブロック a.printStackTrace();} } private boolean checkBeforeWritefile(File file) { if (file.exists()){ if (file.isFile() && file.canWrite()){ return true; } } return false; } class MyWindowListener1 extends WindowAdapter { public void windowClosing(WindowEvent e){ System.exit(0); } } } 有難う御座いました! ついでに閉めます

関連するQ&A

  • java アプレット

    学校の授業でアプレットを学んでいます。 しかし・・・ 下のプログラムで、計算した結果をlabel3にはりつけたいのですが、計算結果がでてくれません・・・ボタンを押しても何もでてきません。 コマンドプロンプトで、エラーはでてきません。 お手数ですが、誰かどこがいけないのか教えて下さい。 import java.awt.*; import java.awt.event.*; public class B extends java.applet.Applet implements ActionListener { Label label3 = new Label(); Button button2 = new Button(); TextField textfield1= new TextField(10); TextField textfield2= new TextField(10); public void init() { button2.setLabel("入力したらクリック!"); button2.setBounds(new Rectangle(50, 465, 120, 20)); this.setLayout(null); label3.setBackground(Color.blue); label3.setBounds(new Rectangle(325, 80, 200, 35)); textfield1.setBounds(100, 425, 100, 25); textfield2.setBounds(150, 350, 100, 25); this.add(textfield2, null); this.add(label3, null); this.add(textfield1, null); this.add(button2, null);} public void actionPerformed(ActionEvent event) {if(event.getSource() == button2) {int diff = Integer.parseInt(textfield1.getText()) - Integer.parseInt(textfield2.getText()); String otsuri; otsuri ="お釣りは"+ diff +"円です。"; label3.setText(otsuri);} }} よろしくお願いします。

    • ベストアンサー
    • Java
  • SampleCanvasのシンボルが見つからない

    Javaの初心者です。JDK6を使用していますが、次のようなエラーが出ます。 シンボルが見つかりません。 場所:SampleCanvas sampleCanvas; ^ もともとのソースはこちらです //<applet code="circgene.class" width="200" height="200"></applet> import java.applet.Applet; import java.awt.*; import java.awt.event.*; public class circgene extends Applet implements ActionListener{ //コンポーネントの変数を定義 TextField textField; SampleCanvas sampleCanvas; public void init(){ //オブジェクトの生成 textField = new TextField("50"); sampleCanvas = new SampleCanvas(); //テキストフィールドをリスナーに登録する textField.addActionListener( this); //レイアウトの設定 this.setLayout(new BorderLayout()); //コンポーネントをアプレットに追加する this.add(textField,BorderLayout.NORTH); this.add(sampleCanvas,BorderLayout.CENTER); } //イベントの処理 public void actionPerformed(ActionEvent ev){ if(ev.getSource()==this.textField){ int r = Integer.parseInt( this.textField.getText()); this.sampleCanvas.setRadius( r); this.sampleCanvas.repaint(); } } } これは自分の入門書に乗っていたソースのまる写しなのですが、対処法が分かりません。初心者故、質問内容が不十分かもしれませんが、ご教示願います。

  • ディレクトリを予め指定した場合のファイル管理ツールについて

    以前BLUEPIXYさんに、ファイル管理ツールのPGを作って頂きました。 ディレクトリ名を入力し、そのファイル名一覧をリストに表示するものです。(下記のPGです) もし1つの定まったでディレクトリ内で、指定した文字列を含むファイル名一覧を表示するとしたら、こちらのPGをどう変化させればよいでしょうか? (BLUPIXYさん作) import java.io.File; import java.awt.*; import java.awt.event.*; class FileList extends Frame implements ActionListener { Label lb1; TextArea aTextArea; TextField folderField ; public FileList(String title){ super(title); setLayout(new FlowLayout()); lb1 = new Label("フォルダーパス:", Label.RIGHT); add(lb1); folderField = new TextField(40); folderField.addActionListener(this); add(folderField); aTextArea =new TextArea("", 20, 80, TextArea.SCROLLBARS_BOTH); add(aTextArea); addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(0); } }); } public void actionPerformed(ActionEvent e){ String folderStr; if(e.getSource() == folderField) { //Enter folderStr = folderField.getText(); File dir = new File(folderStr); File[] files = dir.listFiles(); aTextArea.setText(""); for(int i=0;i<files.length;i++) { aTextArea.append(files[i].getName() + (files[i].isDirectory() ? "\\\n": "\n" )) ; } } } } public class Filekanri { public static void main(String args[]){ FileList aFileList = new FileList("ファイル一覧"); aFileList.setSize(640,480); aFileList.setVisible(true); } }

    • ベストアンサー
    • Java
  • アプレットと自作パッケージのimportについて

    以下のような、アプレットのプログラムを作ったのですが、コンパイルは通るのですが、アプレットの初期化のところで止まってしまいます。理由と解決策を教えてください。 javac dev_java\TargetApplet\*.java ← これはOK appletviewer dev_java\TargetApplet\TargetApplet.java ←init() で止まる。 (ソース一部抜粋) package dev_java.TargetApplet ; import java.applet.* ; import java.awt.* ; import java.awt.event.* ; import dev_java.Target.* ;  // 自作のpackage /* <applet code="TargetApplet" width=500 height=400> </applet> */ public class TargetApplet extends Applet implements ActionListener, TextListener{ TextField Word ; TextField Mean ; TextArea Result ; Button Search ; Button Entry ; EnglishDictionary ed ; /* 自作package dev_java.Target で宣言されているクラス*/ public void init() { Word = new TextField(20) ; Mean = new TextField(20) ; Search = new Button("Search") ; Entry = new Button("Entry") ; Result = new TextArea(20,40) ; Word.addActionListener(this) ; Word.addTextListener(this) ; Mean.addActionListener(this) ; Mean.addTextListener(this) ; Search.addActionListener(this) ; Entry.addActionListener(this) ; // EnglishDictionary ed = new EnglishDictionary("dic/Target1900.dic") ; this.add(Word) ; this.add(Mean) ; this.add(Search) ; this.add(Entry) ; this.add(Result) ; } }

    • ベストアンサー
    • Java
  • java applet

    import java. applet.*; import java. awt. Button; import java. awt. Label; import java. awt. TextField; import java. awt. event.*; public class 1120 extends Applet implements ActionListener { private TextField box1 = new TextField(5); private TextField box2 = new TextField(5); private TextField box3 = new TextField(5); private Label moji1 = new Label(" と "); private Label moji2 = new Label(" の和は "); private Label moji3 = new Label(" である。 "); private Button ok = new Button("OK"); public void init() { resize( 320 , 240); add( box1 ); add( moji1 ); add( box2 ); add( moji2 ); add( box3 ); add( moji3 ); add( ok ); ok.addActionListener( this ); } public void actionPerformed( ActionEvent e ) { int i=0 ,j =0 , k; String t1 = box1.getText(); String t2 = box2.getText(); i = Integer.parseInt( t1 ); j = Integer.parseInt( t2 ); k = i + j; String s = Integer.toString( k ); box3. setText( s ); } } //上記のプログラムを書いたのですが、なぜかエラーが出てしまいます。勿論、自分でも見直しましたが、その理由がわかりませんでした。知識のある方、ご回答の方お願いします。

  • CGIにPOSTでアクセス

    import java.net.*; import java.io.*; import java.awt.*; public class ccc28 extends java.applet.Applet { TextField tf; Button btn; TextArea ta; public void init() { setLayout(new BorderLayout()); tf = new TextField(20); btn = new Button("Submit"); ta = new TextArea(5, 25); add("West", tf); add("East", btn); add("South", ta); } public boolean action (Event e, Object o) { if (e.target == btn) { try { URL url = new URL("http://www.odn.ne.jp/aaa/test.cgi"); URLConnection uc = url.openConnection(); uc.setDoInput(true); uc.setDoOutput(true); uc.setUseCaches(false); PrintWriter pw = new PrintWriter(uc.getOutputStream()); pw.print("a"); pw.close(); } catch(java.security.AccessControlException er) { ta.setText(er.getMessage()); } tf.setText("処理完了"); return true; } return false; } } アプレットビューアからの実行では、 tf.setText("処理完了"); は実行されました。 catchのta.setText(er.getMessage());も実行されて、 access denied (java.net.SocketPermission www.odn.ne.jp resolve) と書かれていました。 実際にアップロードしてからの実験ではボタンを押しても、テキストエリアにもテキストフィールドにも何も表示されませんでした。 どっちの実験でも、CGIへのアクセスができませんでした。 CGIはカウンターです。アクセスさえできればいいんだけど、 http://www.tetras.co.jp/yada/j_java_cgi_r.htm のサイトに書いてあった getAppletContext().showDocument(url); を使うと、ページがCGIに飛んでしまったから、POSTでアクセスしたいと思っています。 このソースをどう直せばいいんですか?

  • テキストファイルから読み取り配列にあてはめソート

    宿題できなくてあせってます。 宿題の内容は、テキストファイル(textstrs.txt)の内容を読み取ってARRAYに入れて 以下がテキストファイルの中身 3 Jones, Chris C Ferguson, Tom J Pryor, Richard P 一番初めのナンバーをARRAYのスロット数となり、そのスロットに 以下の3人の名前をあてはめ、アルファベット順に並び替えしたものを コンソールとテキストファイル(strsdataout.txt)に書くというものです。 今の段階は、まず読んでそのままコンソールに出すところですが それさえうまくいきません。とほほ 誰かわかる方おしえていただけますか。 import java.util.Scanner; import java.io.*; public class StringProject5 { //#1 public static void main(String[] args) throws Exception { //#2 // Create a File instance java.io.File inputFile = new java.io.File("D:\\teststrs.txt"); java.io.File outputFile = new java.io.File("D:\\strdataout.txt"); // Create Scanner for the file Scanner input = new Scanner(inputFile); FileReader in = new FileReader(inputFile); java.io.PrintWriter out = new java.io.PrintWriter(outputFile); BufferedReader br = new BufferedReader(in); int size = input.nextInt(); String[] strarray = new String[size]; int x = 0; while (input.hasNext()){ // while String ln = input.nextLine(); strarray [x] = ln; x++; } // end of while for (int i = 0; i < strarray.length; i++){ // for loop System.out.println(strarray[i]); //writing array in console }// end off for loop } //#2 } //#1*/

  • Writer & PrintWriter

    import java.io.*; public class JavaIO4 { public static void main(String args[]) throws Exception { Writer w=new FileWriter(args[0]); PrintWriter pw=new PrintWriter(w); for (int i=0; i<=330; i+=30) { double atai=Math.sin(Math.PI*i/180.0); String str="sin("+i+")="+atai+"\n"; pw.write(str); } pw.close(); } } と import java.io.*; public class JavaIO4 { public static void main(String args[]) throws Exception { //Writer w=new FileWriter(args[0]); PrintWriter pw=new PrintWriter(args[0]); for (int i=0; i<=330; i+=30) { double atai=Math.sin(Math.PI*i/180.0); String str="sin("+i+")="+atai+"\n"; pw.write(str); } pw.close(); } } の結果が同じになるんですけど、 Writer w = new FileWriter(args[0]); PrintWriter pw = new PrintWriter(w); とするのはなぜなんですか? 何か意味はあるんですか?

  • 整数を好きなだけ入力し、個数、合計、平均値を表示するプログラム

    appletviewerに、ボックスの中に整数を好きなだけ入力し、個数、合計、平均値を以下のように表示させるようなプログラムを作りたいです。(1,2,3を入力した場合)     データ□ (入力)        (計算)   個数=3   合計=6   平均値=2 ※□はボックスです。(入力)(計算)はクリックするボタンです。 どなたかご指導やアドバイスをお願いいたします。まだまだ初心者でとても困っています。。 ちなみに途中まで考えたのが以下のプログラムです。 import java.applet.*; import java.awt.Button; import java.awt.Label; import java.awt.TextField; import java.awt.event.*; public class Lec1106 extends Applet implements ActionListener { private TextField box1 = new TextField(5); private Label moji1 = new Label("データ"); private Label moji2 = new Label("個数="); private Label moji3 = new Label("合計="); private Label moji4 = new Label("平均値="); private Button nyuuryoku = new Button("入力"); private Button keisan = new Button("計算"); public void init() { resize(320,240); add(moji1); add(box1); add(nyuuryoku); nyuuryoku.addActionListener(this); add(keisan); keisan.addActionListener(this); add(moji2); add(moji3); add(moji4); } public void actionPerformed(ActionEvent e)  {int i; String t1=box1.getText(); i=Integer.parseInt(t1);

    • ベストアンサー
    • Java
  • 読み込んだ行からランダムに選ぶ

    外部テキストからBufferedReaderで読み込んだ行をStringTokenizerで * の前と後ろに分けて、 nichi ="" + st.nextToken(); ei ="" + st.nextToken(); というように取得しています。 これをsetTextメソッドで文字列として表示しているのですが、順に読み込んだ中からランダムに選ぶ場合はどうすれば良いでしょうか import java.applet.*; import java.awt.*; import java.awt.event.*; import java.io.*; import java.util.*; import javax.swing.*; public class examination extends Applet implements ActionListener{ Button Check, Next; TextField jap, eng, seigo; String wrs; String nichi, ei; public void init(){ setBackground(new Color(200, 200, 200)); add(new Label("[ japanese ]")); jap = new TextField("", 30); add(jap); add(new Label("[ english ]")); eng = new TextField("", 30); add(eng); Check = new Button("正誤判定"); Check.addActionListener(this); add(Check); seigo = new TextField("", 3); add(seigo); Next = new Button("次の問題へ進む"); Next.addActionListener(this); add(Next); } public void actionPerformed(ActionEvent e){ try{ if(e.getSource() == Next){ BufferedReader wordsfile = new BufferedReader(new FileReader("D:/list.txt")); while ((wrs=wordsfile.readLine())!= null){ StringTokenizer st = new StringTokenizer(wrs," * "); nichi ="" + st.nextToken(); ei ="" + st.nextToken(); jap.setText(nichi); ← } wordsfile.close(); }(以下省略) ←の部分ですが、このままだと最後に読み込んだ行のnichiが表示されますよね? これを読み込んだ中からランダムに一行選んで表示するにはどうすれば良いでしょうか。

    • ベストアンサー
    • Java