テキストファイルへの書き込み方法

このQ&Aのポイント
  • テキストファイルに文字を書き込む方法を知りたいです。具体的には、Javaでテキストファイルを書き込む方法を教えてください。
  • デスクトップ画面にあるmemo.txtというファイルにテキストエリアの内容を書き込む方法を教えてください。
  • 具体的な解決策やアドバイスをお待ちしています。
回答を見る
  • ベストアンサー

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

ここまでできました。ソーのせます。かなり長いです⇓ 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に書きこむという内容です。 これ以上よっっっくわからなくてかなり途方にくれてます。 こうしたらいいとか解決策とかお願いします。

  • Java
  • 回答数2
  • ありがとう数2

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

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

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

skyfire
質問者

お礼

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

その他の回答 (1)

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

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

skyfire
質問者

お礼

自己解決しました~! どうやら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・ファイルへの書き込み

    はじめまして。 下記のプログラムで、以下の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
  • 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); とするのはなぜなんですか? 何か意味はあるんですか?

  • package sample;

    package sample; import java.applet.*; import java.awt.*; import java.awt.event.*; import java.applet.*; import java.awt.Label; import java.awt.Font; import static java.awt.Font.BOLD; import java.util.*; import java.awt.Graphics; import java.awt.Image; import java.awt.*; import java.io.BufferedWriter; import java.io.*; public class sample extends Panel { // マウス位置 int posX = 150; int posY = 200; // 円直径 int h = 100; int[] xCord1, yCord1, xCord2, yCord2; // 円左上位置 int imgPosX = 0; int imgPosY = 0; // 円中心点から三角頂点までの距離(=円の半径+α) int r = 90; // 円中心点 int imgCenterPosX = imgPosX + h / 2; int imgCenterPosY = imgPosY + h / 2; double s = Math.atan2((posX - imgCenterPosX), (posY - imgCenterPosY)); int x, y; public static void main(String args[]) { try { String str1 = "NUMBER,TITLE"; String str2 = "2,test"; PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter( "C:\\output.csv"))); pw.println(str1); pw.println(str2); System.out.println("ファイルに書き込みました。"); pw.close(); } catch (IOException exp) { System.out.println("入出力エラーです。"); } Frame f = new Frame(); f.addWindowListener(new java.awt.event.WindowAdapter() { public void windowClosing(java.awt.event.WindowEvent e) { System.exit(0); }; }); sample ut = new sample(); ut.setSize(100, 100); // same size as defined in the HTML APPLET f.add(ut); f.pack(); ut.init(); f.setSize(100, 100 + 20); // add 20, seems enough for the Frame title, f.show(); }

  • 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
  • 「得た値をCSV出力するJAVAプログラムを書きたい」

    「得た値をCSV出力するJAVAプログラムを書きたい」 固定したある点とクリックした点の距離は取得できました つまり、クリックするごとに2点間の距離は変わります 例えば 1回目:10cm 2回目:20cm 3回目:5cm とします 流れはクリック→10cmという値を取得→クリック→20cmという値を取得→・・・ するとCSVファイルには10,20,5という風に出力されるようにJAVAプログラムを書きたいです 色々調べたんですが、読み込みの方法がいまいちわかりません(全体的なこともですが・・・) データベースを読み込むとかはよく見かけるのですが。 また、実行したら勝手にCSVファイルが出来るのか? 下記のプログラムまでは出来ました import java.io.*; public static void main( String args[] ) { try { PrintWriter pw = new PrintWriter( new BufferedWriter( new FileWriter( "output.csv" ) ) ); pw.println( "kyori" ); System.out.println( "ファイルに書き込みました。" ); pw.close(); } catch( IOException exp ) { System.out.println( "入出力エラーです。" ); } } 何かアドバイスをお願いします。

  • javaプログラムのファイル書き出しについて

    以前はファイルに書き出すためのパスが違っており、書き出せずにいるところをアドバイスいただきありがとうございます。 プロフィールを書くプログラムを組んでいます。 打ち込んだプロフィールを画面に表示すると同時に、ファイルにも結果を書き出したいのですが、書き出せれる内容が、打ち込んだ内容ではなく、 プルグラムの書き込み欄に例として表示される用に書いている、 下の内容が書き出されてしまいます。 「name = new JTextField("名前", 20); birth = new JTextField("生年月日", 20); address = new JTextField("住所", 40); mail = new JTextField("mail", 40); number= new JTextField("電話番号", 30);」 テキストファイルに書き出される内容です。 「名前:名前 生年月日:生年月日 住所:住所 mail:mail 電話:電話番号」 打ち込んだ内容がテキストファイルに書き出すにはどうすればいいでしょうか? 下がソースコードです。 よろしくお願いします。 import java.io.*; import javax.swing.*; import java.awt.*; import java.awt.event.*; class Sample extends JFrame implements ActionListener{ /** * */ private static final long serialVersionUID = 1L; static JTextField name; static JTextField birth; static JTextField address; static JTextField mail; static JTextField number; JLabel label; public static void main(String args[]){ Sample frame = new Sample("profile"); frame.setVisible(true); } Sample(String title){ setTitle(title); setBounds(100, 100, 500, 300); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanel p = new JPanel(); name = new JTextField("名前", 20); birth = new JTextField("生年月日", 20); address = new JTextField("住所", 40); mail = new JTextField("mail", 40); number= new JTextField("電話番号", 30); JButton button = new JButton("取得"); button.addActionListener(this); label = new JLabel(); p.add(name); p.add(birth); p.add(address); p.add(mail); p.add(number); p.add(button); Container contentPane = getContentPane(); contentPane.add(p, BorderLayout.CENTER); contentPane.add(label, BorderLayout.SOUTH); try{ File file = new File("C:\\Users\\mattun\\Documents\\sample.txt"); if (checkBeforeWritefile(file)){ PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(file))); //ファイルに書き込む内容 pw.println("名前:"+name.getText()); pw.println("生年月日:"+birth.getText()); pw.println("住所:"+address.getText()); pw.println("mail:"+mail.getText()); pw.println("電話:"+number.getText()); pw.close();//ファイルを閉じる }else{ System.out.println("ファイルに書き込めません");//書き込み出来ない場合 } }catch(IOException e){ System.out.println(e); } } public void actionPerformed(ActionEvent e){ label.setText("<html>"+"名前:"+name.getText()+"<br>"+"生年月日:"+birth.getText()+"<br>"+"住所:"+address.getText()+ "<br>"+"mail:"+mail.getText()+"<br>"+"電話:"+number.getText()+"</html>"); } private static boolean checkBeforeWritefile(File file){ if (file.exists()){ if (file.isFile() && file.canWrite()){ return true; } } return false; } }

    • ベストアンサー
    • Java
  •  DataをtxtFileに書かせて、同じFileから読み込みです、エラーの意味が不明です

    JAVA初心者です、宜しくお願いします。  DataをtxtFileに書かせて、同じFileから読み込ませるコードですが、書き込みは正常に出来、(test1.txt)Fileも出来、内容もOKなのですが、同じFileからの読み込みがエラーになります。 一体どこが間違っているのでしょうか。 Fileは同じプロジェクトにおいています。(当然同一Fileからの読み込みです。) 諸兄の方々宜しくお願いします・・・正直泣いています。 public class Write_Read_070620{ public static void main(String args[]){ try{ PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter("test1.txt"))); pw.println("Hello!!"); pw.println("Goodbye!!"); pw.close(); BufferedReader br0 = new BufferedReader(new FileReader("text1.txt")) ; String str0 = br0.readLine() ; System.out.println("入力データーを確認します\n" + " Team " + str0); br0.close(); } catch(IOException e){ System.out.println("入力エラ-です。\n "); } } }

    • ベストアンサー
    • Java
  • Javaのカウント方法について

    お伺い致します。 CSVで取り込んだデータの抽出をしたいのですが、方法が見出せません。どの点を直せば宜しいのでしょうか。 具体的には取り込んだ郵便番号をカウントして(例:京都市,34)CSVファイルに出力するように出したいのですがカウントがうまくできません。(以下、コメントアウトしたものがありますが、今までのソースを記載します) 宜しく御願いします。 import java.io.FileReader; import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.IOException; import java.io.*; public class test01 { static String fname ="26KYOUTO.CSV"; public static void main(String[] args){ if(args.length>0) fname = args[0]; try { BufferedReader reader = new BufferedReader(new FileReader(fname)); BufferedWriter pw = new BufferedWriter(new PrintWriter("orig.txt")); String line = reader.readLine(); System.out.println(line); pw.println(""); int n = 0; int count = 0; _/* while(true) { String line = reader.readLine(); if(line.equals("26101")) break; count++; } */ reader.close(); System.out.println("京都府北区=" +count ); } catch(FileNotFoundException e) { System.out.println("ファイルがありません。"); } catch(IOException e) { System.out.println("入出力エラーです。"); } } }

    • ベストアンサー
    • Java
  • テキストファイルの日付表示

    JAVA初心者なのですが、テキストファイルに出力する時にファイル名を現在日付にしたいのですが、どうすればよいでしょうか?(yyyymmdd.txtを20070316.txtというふうにしたい) 後、@SuppressWarnings("unchecked")と記述しているのにコンパイルで-Xlint:unchecked.警告が出てきてします!どなたかご教授ください!!ちなみにJAVA1.5 import java.io.File; import java.io.FileWriter; import java.io.BufferedWriter; import java.io.IOException; import java.util.ArrayList; public class Writedown { @SuppressWarnings("unchecked")/*コンパイラの警告を抑制する */ public static void fileWrite(ArrayList<ArrayList> WriteArrayList) { try { File txt = new File("yyyymmdd.txt"); /*出力するファイル*/ BufferedWriter bw = new BufferedWriter(new FileWriter(txt));/* try { for(int i = 0; i < WriteArrayList.size(); i++){ ArrayList list = WriteArrayList.get(i); if(i == 0){ bw.write((list.size() - 3) + "科目成績表\r\n"); } for(int j = 0; j < list.size(); j++){ if(j > 0){ bw.write("\t"); } if(list.get(j).toString().equals("名前")){ list.remove(j); list.add(j,"名前"); } bw.write(list.get(j).toString()); System.out.print(list.get(j) + "\t"); } bw.write("\r\n"); bw.flush(); System.out.println(""); } } catch (IOException e) { System.out.println("ファイル書き込みエラー"); } bw.close(); } catch (IOException e) { System.out.println("ファイルオープンエラー"); } } }

  • Javaのプログラミングで困っています。

    プロフィールを打ち込んで表示するプログラムを書いていました。 プロフィールの打ち込み後に画面に表示するのと同時にテキストファイルに書き出したいと思ったため、書いてみましたが、ファイルに書き込めず知識不足で困っています。 是非教えていただきたく書き込みをさせていただきました。 自分で書いたコードは書きになります。 import java.io.*; import javax.swing.*; import java.awt.*; import java.awt.event.*; class Sample extends JFrame implements ActionListener{ /** * */ private static final long serialVersionUID = 1L; static JTextField name; static JTextField birth; static JTextField address; static JTextField mail; static JTextField number; JLabel label; public static void main(String args[]){ Sample frame = new Sample("profile"); frame.setVisible(true); } Sample(String title){ setTitle(title); setBounds(100, 100, 500, 300); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanel p = new JPanel(); name = new JTextField("名前", 20); birth = new JTextField("生年月日", 20); address = new JTextField("住所", 40); mail = new JTextField("mail", 40); number= new JTextField("電話番号", 30); JButton button = new JButton("取得"); button.addActionListener(this); label = new JLabel(); p.add(name); p.add(birth); p.add(address); p.add(mail); p.add(number); p.add(button); Container contentPane = getContentPane(); contentPane.add(p, BorderLayout.CENTER); contentPane.add(label, BorderLayout.SOUTH); try{ File file = new File("C:Users\\mattun\\Documents\\sample.txt"); if (checkBeforeWritefile(file)){ PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(file))); //ファイルに書き込む内容 pw.println("名前:"+name.getText()); pw.println("生年月日:"+birth.getText()); pw.println("住所:"+address.getText()); pw.println("mail:"+mail.getText()); pw.println("電話:"+number.getText()); pw.close();//ファイルを閉じる }else{ System.out.println("ファイルに書き込めません");//書き込み出来ない場合 } }catch(IOException e){ System.out.println(e); } } public void actionPerformed(ActionEvent e){ label.setText("<html>"+"名前:"+name.getText()+"<br>"+"生年月日:"+birth.getText()+"<br>"+"住所:"+address.getText()+ "<br>"+"mail:"+mail.getText()+"<br>"+"電話:"+number.getText()+"</html>"); } private static boolean checkBeforeWritefile(File file){ if (file.exists()){ if (file.isFile() && file.canWrite()){ return true; } } return false; } }

    • ベストアンサー
    • Java