javax.swing.JFrame打开、保存文本文件

javax.swing.JFrame打开、保存文本文件

package com.jframe_2;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;

import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import javax.swing.*;
import javax.swing.filechooser.FileFilter;
import javax.swing.filechooser.FileNameExtensionFilter;
public class MyJFrame extends JFrame{
          
   

	private JFileChooser jfcFile;//文件选择框
	private JLabel jl;
	private JTextArea jta;
	private JButton jbopen;
	private JButton jbsave;
	private JButton eliminate;
	private JTextField jtf;
	
	public MyJFrame() {
          
   
		setTitle("文本文件操作");
		Container c = getContentPane();//创建一个容器
		jfcFile = new JFileChooser();
		FileFilter filter = new FileNameExtensionFilter("文本文件","txt","ini");//文件过滤
		jfcFile.setFileFilter(filter);//设置当前文件过滤器。文件选择器使用文件过滤器从用户的视图中过滤文件。
		jl = new JLabel("文件:");
		jtf = new JTextField();
		jbopen = new JButton("打开");
		jta = new JTextArea();
		jbsave = new JButton("保存");
		eliminate = new JButton("清除");
		c.add(jl);
		c.add(jtf);
		c.add(jbopen);
		c.add(jbsave);
		c.add(jta);
		c.add(eliminate);
		jl.setBounds(10, 10, 50, 20);
		jtf.setBounds(60, 10, 250, 20);
		jta.setBounds(60, 40, 300, 200);
		jbopen.setBounds(320, 10, 70, 20);
		jbsave.setBounds(290, 280, 70, 20);
		eliminate.setBounds(10, 280, 70, 20);
		jta.setLineWrap(true);//文本域自动换行
		c.setLayout(null);
		setBounds(0, 0, 500, 400);
		
		jbopen.addActionListener(new ActionListener() {
          
   //‘打开’按钮事件
			
			@Override
			public void actionPerformed(ActionEvent e) {
          
   
				// TODO Auto-generated method stub
				jbopenAcionPerformed(e);
			}
		});
		jbsave.addActionListener(new ActionListener() {
          
   //‘保存’按钮事件
			
			@Override
			public void actionPerformed(ActionEvent e) {
          
   
				// TODO Auto-generated method stub
				jbsaveActionPerformed(e);
				
			}
		});
		eliminate.addActionListener(new ActionListener() {
          
   
			
			@Override
			public void actionPerformed(ActionEvent e) {
          
   //‘清空’按钮事件
				// TODO Auto-generated method stub
				jta.setText("");
				jta.requestFocus();
			}
		});
		setVisible(true);
		setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
	}
	public void jbopenAcionPerformed(ActionEvent e){
          
   
		try {
          
   
			if(jfcFile.showOpenDialog(this)!=JFileChooser.APPROVE_OPTION)
			{
          
   
				return;
			}
			String strFileName=jfcFile.getSelectedFile().getAbsolutePath();
			BufferedReader in = new BufferedReader(new FileReader(strFileName));
			String strLine = in.readLine();   //读取一行内容
			String strContent="";
			boolean IsFirst=true;
			while(strLine != null ) {
          
   
				if(!IsFirst)
				{
          
   
					strContent+="
";
				}
				strContent+=strLine;
				IsFirst=false;
				strLine = in.readLine();
			}
	        in.close();
	        jtf.setText(strFileName);
	        jta.setText(strContent);
		}
		catch(Exception ex){
          
   
			JOptionPane.showMessageDialog(this, ex.getMessage());
		}
	}
	public void jbsaveActionPerformed(ActionEvent e) {
          
   
		try{
          
   
			String strFileName=jtf.getText();
			if(strFileName.equals(""))
			{
          
   
				if(jfcFile.showSaveDialog(this)!=JFileChooser.APPROVE_OPTION)
				{
          
   
					return;
				}
				strFileName=jfcFile.getSelectedFile().getAbsolutePath();
				jtf.setText(strFileName);
			}
			String strContent=jta.getText();
			strContent=strContent.replace("
", "
");
			BufferedWriter out = new BufferedWriter(new  FileWriter(strFileName));
			out.write(strContent);
			out.close();
		}catch(Exception ex){
          
   
			JOptionPane.showMessageDialog(this, ex.getMessage());
		}
	}
	public static void main(String[] args) {
          
   
		// TODO Auto-generated method stub
		new MyJFrame();
	}

}
经验分享 程序员 微信小程序 职场和发展