Java_打開/保存文件

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.PrintStream;
import java.util.Scanner;
import java.awt.BorderLayout;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.JLabel;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JFileChooser;
import javax.swing.JScrollPane;

class Note implements ActionListener {

    private JTextArea area = new JTextArea(8, 10); // 定義文本區
    private JFrame frame = new JFrame("Welcome To MLDN");
    private JButton open = new JButton("打開文件");
    private JButton save = new JButton("保存文件");
    private JLabel label = new JLabel("現在沒有打開的文件");
    private JPanel butPan = new JPanel();

    public Note() {
        this.butPan.add(open); // 在面板中加入按鈕
        this.butPan.add(save); // 在面板中加入按鈕
        this.frame.setLayout(new BorderLayout(3, 3));
        this.frame.add(this.label, BorderLayout.NORTH);
        this.frame.add(this.butPan, BorderLayout.SOUTH);
        this.frame.add(new JScrollPane(this.area), BorderLayout.CENTER);
        this.frame.setSize(330, 180);
        this.frame.setVisible(true);
        this.frame.addWindowListener(
                new WindowAdapter() {

                    public void windowClosing(WindowEvent e) {
                        System.exit(1);
                    }
                });
        this.open.addActionListener(this);
        this.save.addActionListener(this);
    }

    public void actionPerformed(ActionEvent e) {
        File file = null; // 接收文件
        int result = 0; // 接收操作狀態
        JFileChooser fileChooser = new JFileChooser(); // 文件選擇框
        if (e.getSource() == this.open) { // 表示執行的是打開操作
            this.area.setText(""); // 打開將文字區域的內容清空
            fileChooser.setApproveButtonText("確定");
            fileChooser.setDialogTitle("打開文件");
            result = fileChooser.showOpenDialog(this.frame);
            if (result == JFileChooser.APPROVE_OPTION) { // 選擇的是確定按鈕
                file = fileChooser.getSelectedFile(); // 得到選擇的文件
                this.label.setText("打開的文件名稱爲:" + file.getName());
            } else if (result == JFileChooser.CANCEL_OPTION) {
                this.label.setText("沒有選擇任何文件");
            } else {
                this.label.setText("操作出現錯誤");
            }
            if (file != null) {
                try {
                    Scanner scan = new Scanner(new FileInputStream(file));
                    scan.useDelimiter("\n");
                    while (scan.hasNext()) {
                        this.area.append(scan.next());
                        this.area.append("\n");
                    }
                    scan.close();
                } catch (Exception e1) {
                }
            }
        }
        if (e.getSource() == this.save) { // 判斷是否是保存操作
            result = fileChooser.showSaveDialog(this.frame); // 顯示保存框
            if (result == JFileChooser.APPROVE_OPTION) { // 選擇的是確定按鈕
                file = fileChooser.getSelectedFile(); // 得到選擇的文件
                this.label.setText("選擇的存儲文件名稱爲:" + file.getName());
            } else if (result == JFileChooser.CANCEL_OPTION) {
                this.label.setText("沒有選擇任何文件");
            } else {
                this.label.setText("操作出現錯誤");
            }
            if (file != null) {
                try {
                    PrintStream out = new PrintStream(new FileOutputStream(file));
                    out.print(this.area.getText());
                    out.close();
                } catch (Exception e1) {
                }
            }
        }
    }
}

public class Test {

    public static void main(String args[]) {
        new Note();
    }
}


發佈了76 篇原創文章 · 獲贊 4 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章