//Sample14 import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.BufferedReader; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStreamReader; import java.io.PrintStream; import javax.swing.JButton; import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JTextField; /** * ファイル入出力 */ public class Sample14 { private static final String btnSave_code = "Save"; private static final String btnSave_title = "保存"; private static final String btnOpen_code = "Open"; private static final String btnOpen_title = "開く"; 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 = 20; JTextField tf01 = new JTextField("", Sample14.tf01_size); JTextField tf02 = new JTextField("", Sample14.tf02_size); /** * 主処理 */ public static void main(final String[] args) { final Sample14 sample = new Sample14(); } /** * コンストラクタ(部品をセットしてウィンドウ表示) */ Sample14() { final JFrame f = new JFrame(Sample14.window_title); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); final JButton btnOpen = new JButton(Sample14.btnOpen_title); btnOpen.setActionCommand(Sample14.btnOpen_code); btnOpen.addActionListener(new PushButtonActionListener(f)); final JButton btnSave = new JButton(Sample14.btnSave_title); btnSave.setActionCommand(Sample14.btnSave_code); btnSave.addActionListener(new PushButtonActionListener(f)); final JPanel p1 = new JPanel(); p1.add(btnOpen); p1.add(btnSave); f.getContentPane().add(p1, BorderLayout.NORTH); final JPanel p2 = new JPanel(); p2.add(this.tf01); p2.add(this.tf02); f.getContentPane().add(p2, BorderLayout.CENTER); f.setSize(Sample14.window_width, Sample14.window_height); f.setVisible(true); } private class PushButtonActionListener implements ActionListener { private static final String USER_DIR = "user.dir"; JFrame f = null; public PushButtonActionListener(final JFrame af) { this.f = af; } /* * ボタンクリック時処理 */ public void actionPerformed(final ActionEvent ae) { /** * 開くボタンの場合 */ if (ae.getActionCommand() == Sample14.btnOpen_code) { Sample14.this.tf01.setText(""); Sample14.this.tf02.setText(""); /** * 対象ファイルを選択 */ final JFileChooser fc = new JFileChooser(System .getProperty(PushButtonActionListener.USER_DIR)); final int fd = fc.showOpenDialog(this.f); try { if (fd == JFileChooser.APPROVE_OPTION) { final FileInputStream fi = new FileInputStream(fc .getSelectedFile()); final BufferedReader br = new BufferedReader( new InputStreamReader(fi)); final String s01 = br.readLine(); // 1レコード目に値がある場合 if (s01 != null) { // 上テキストフィールドに1レコード目の値をセット Sample14.this.tf01.setText(s01); } final String s02 = br.readLine(); // 2レコード目に値がある場合 if (s02 != null) { // 下テキストフィールドに1レコード目の値をセット Sample14.this.tf02.setText(s02); } br.close(); fi.close(); } } catch (final Exception ex) { } /** * 保存ボタンの場合 */ } else if (ae.getActionCommand() == Sample14.btnSave_code) { /** * 対象ファイルを選択 */ final JFileChooser fc = new JFileChooser(System .getProperty(PushButtonActionListener.USER_DIR)); final int fd = fc.showSaveDialog(this.f); try { if (fd == JFileChooser.APPROVE_OPTION) { final FileOutputStream fo = new FileOutputStream(fc .getSelectedFile()); final PrintStream ps = new PrintStream(fo); /** * 1レコード目に上テキストフィールドの値を書き込む */ ps.println(Sample14.this.tf01.getText()); /** * 2レコード目に上テキストフィールドの値を書き込む */ ps.println(Sample14.this.tf02.getText()); ps.close(); fo.close(); } } catch (final Exception ex) { } } } } }