java gui文件操作:打开与保存

 

* 读取或保存为UTF-8文件不出现中文乱码

 * 菜单的使用

 *JTextarea 与JScrolPane结合使用,使长文档加入滚动条。

 

package com.wt010.file;

 
import java.awt.FileDialog;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.nio.Buffer;

import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JScrollBar;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;

/**
 * @author konecms
 * @date 2018年1月31日 下午3:18:49
 *
 */
public class FileOpenAndSaveUtil extends JFrame implements ActionListener {
    private JMenuItem mOpen,mSave,mExit;
    private JTextArea ta;
    public FileOpenAndSaveUtil() {
        // TODO Auto-generated constructor stub
        myframe();
    }
    public void myframe() {
        setTitle("文件操作:打开及保存");
        this.setLocationRelativeTo(null);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JMenuBar mbar=new JMenuBar();
        JMenu m=new JMenu("文件");
          mOpen=new JMenuItem("打开");mOpen.addActionListener(this);
          mSave=new JMenuItem("保存");mSave.addActionListener(this);
          mExit=new JMenuItem("退出");mExit.addActionListener(this);
        m.add(mOpen);
        m.add(mSave);
        m.add(mExit);
        mbar.add(m);
        getContentPane().add("North",mbar);

        ta=new JTextArea();
        JScrollPane sp=new JScrollPane(ta);
        sp.setVisible(true);
        getContentPane().add("Center",sp);
        
        
    }
    
    public static void main(String[] args) {
        FileOpenAndSaveUtil util=new FileOpenAndSaveUtil();
        util.setVisible(true);
        util.setSize(300,500);
        
    }
    @Override
    public void actionPerformed(ActionEvent e) {
        // TODO Auto-generated method stub
        Object source=e.getSource();
        
        if(source==mOpen) {
            FileDialog openDia=new FileDialog(this,"aaa",FileDialog.LOAD);
            openDia.setVisible(true);
            String dirpath=openDia.getDirectory();
            String filename=openDia.getFile();
            if(dirpath==null||filename==null) {
                return;
            }
            File file=new File(dirpath,filename);
            try {
                ta.setText(null);
                InputStreamReader read = new InputStreamReader(new FileInputStream(file),"UTF-8");
                BufferedReader reader=new BufferedReader(read);
                String line;
                while((line=reader.readLine()) != null) {
                    ta.append(line+"\r\n");
                }
                reader.close();
            }catch(FileNotFoundException e1) {
                e1.printStackTrace();
            }catch(IOException e1) {
                e1.printStackTrace();
            }
        }//openDia
        if(source==mSave) {
            FileDialog saveDia=new FileDialog(this,"保存",FileDialog.SAVE);
            saveDia.setVisible(true);
            String filename=saveDia.getFile();
            String dirpath=saveDia.getDirectory();
            if(filename==null||dirpath==null) {
                return;
            }
            try {
                File file=new File(dirpath,filename);
                OutputStreamWriter write=new OutputStreamWriter(new FileOutputStream(file),"UTF-8");
                BufferedWriter writer=new BufferedWriter(write);
                writer.write(ta.getText());
                writer.close();
            }catch(IOException e1) {
                e1.printStackTrace();
            }
        }
        if(source==mExit) {
            System.exit(0);
        }
    }

}


 

posted on 2018-01-30 15:54  细思极恐的大橙子  阅读(757)  评论(0编辑  收藏  举报

导航