//Sample04 import java.awt.Button; import java.awt.FileDialog; import java.awt.FlowLayout; import java.awt.Frame; import java.awt.TextField; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.io.BufferedReader; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStreamReader; import java.io.PrintStream; /** * ファイル入出力 */ public class Sample04 extends Frame implements ActionListener { private static final String btnOpen_title = "Open"; private static final String btnSave_title = "Save"; private static final String window_title = "ファイル入出力"; private static final int window_height = 400; private static final int window_width = 640; private static final int tf02_size = 20; private static final int tf01_size = 80; private static final String Select_Dialog_title = "File Select"; private static final String Save_Dialog_title = "File Save"; private static final long serialVersionUID = 1L; TextField tf01 = new TextField("",Sample04.tf01_size); TextField tf02 = new TextField("",Sample04.tf02_size); /** * 主処理(ウィンドウ表示) */ public static void main(final String[] args) { final Frame f = new Sample04(); f.setTitle(Sample04.window_title); f.setSize(Sample04.window_width, Sample04.window_height); f.setVisible(true); } /** * コンストラクタ(部品をセット) */ Sample04() { this.setLayout(new FlowLayout()); final Button btnOpen = new Button(Sample04.btnOpen_title); final Button btnSave = new Button(Sample04.btnSave_title); btnOpen.addActionListener(this); btnSave.addActionListener(this); this.add(btnOpen); this.add(btnSave); this.add(this.tf01); this.add(this.tf02); this.addWindowListener(new WinAdapter()); } /** * ウィンドウを閉じる * */ class WinAdapter extends WindowAdapter{ @Override public void windowClosing(final WindowEvent we){ System.exit(0); } } /* * ボタンクリック時処理 */ public void actionPerformed(final ActionEvent ae){ /** * 開くボタンの場合 */ if(ae.getActionCommand()==Sample04.btnOpen_title){ this.tf01.setText(""); this.tf02.setText(""); try { /** * 対象ファイルを選択 */ final FileInputStream fi = new FileInputStream(this.openfile()); final BufferedReader br = new BufferedReader(new InputStreamReader(fi)); final String s01 = br.readLine(); // 1レコード目に値がある場合 if(s01 != null){ // 上テキストフィールドに1レコード目の値をセット this.tf01.setText(s01); } final String s02 = br.readLine(); // 2レコード目に値がある場合 if(s02 != null){ // 下テキストフィールドに1レコード目の値をセット this.tf02.setText(s02); } br.close(); fi.close(); } catch (final Exception e) { } } /** * 保存ボタンの場合 */ if(ae.getActionCommand()==Sample04.btnSave_title){ try { /** * 対象ファイルを選択 */ final FileOutputStream fo = new FileOutputStream(this.writefile()); final PrintStream ps = new PrintStream(fo); /** * 1レコード目に上テキストフィールドの値を書き込む */ ps.println(this.tf01.getText()); /** * 2レコード目に上テキストフィールドの値を書き込む */ ps.println(this.tf02.getText()); ps.close(); fo.close(); } catch (final Exception e) { } } } /** * ファイル選択ダイアログ表示 * @return 対象ファイル名 */ String openfile(){ final FileDialog fd = new FileDialog(new Frame(),Sample04.Select_Dialog_title); fd.setVisible(true); final String fullpath = fd.getDirectory() + fd.getFile(); fd.dispose(); return fullpath; } /** * 保存用ファイル選択ダイアログ表示 * @return 対象ファイル名 */ String writefile(){ final FileDialog fd = new FileDialog(new Frame(),Sample04.Save_Dialog_title,FileDialog.SAVE); fd.setVisible(true); final String fullpath = fd.getDirectory() + fd.getFile(); fd.dispose(); return fullpath; } }