こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

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

投稿日時 - 2011-06-21 17:29:57

QNo.6825788

すぐに回答ほしいです

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

あえて聞くけど
何ができたの?
そして何ができないの?

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

投稿日時 - 2011-06-21 18:42:45

お礼

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

投稿日時 - 2011-06-21 19:07:04

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

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

投稿日時 - 2011-06-21 19:45:23

お礼

自己解決しました~!
どうやら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);
}
}
}
有難う御座いました!
ついでに閉めます

投稿日時 - 2011-06-21 21:10:54

あなたにオススメの質問