《文件操作——Java第十五周》

/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:    《文件操作——Java第十五周》                         
* 作    者:       刘江波                      
* 完成日期:    2012     年     12  月     6   日
* 版 本 号:    v2.2     

* 对任务及求解方法的描述部分
* 问题描述: 

编写一个真正能够打开文件和保存文件的应用程序。打开文件后可能对该文本文件进行编辑,并可以改变保存路径和文件名,最后编写 一个程序执行入口进行测试。 
* 程序头部的注释结束
*/

package week15;

import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;

public class FileWindowsTest {

	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		FileWindows win = new FileWindows();
	}
	
}

class FileWindows extends JFrame implements ActionListener 
{
	JFileChooser filedialog_save,filedialog_load;//声明两个文件对话框
	JMenuBar menubar;
	JMenu menu;
	JMenuItem itemOpen,itemSave;
	JTextArea text;
	BufferedReader in;
	FileReader file_reader;
	BufferedWriter out;
	FileWriter tofile;
	
	FileWindows()
	{
		super("带文件对话框的窗口");
		setBounds(300,200,260,270);
		setVisible(true);
		
		menubar = new JMenuBar();
		menu = new JMenu("文件");	
		itemOpen = new JMenuItem("打开文件");
		itemSave = new JMenuItem("保存文件");
		
		itemOpen.addActionListener(this);
		itemSave.addActionListener(this);
		menu.add(itemOpen);
		menu.add(itemSave);
		menubar.add(menu);
		setJMenuBar(menubar);

		filedialog_save = new JFileChooser();
		filedialog_load = new JFileChooser();
		text =new JTextArea(10,10);
		
		add(text,BorderLayout.CENTER);
	}
	
	public void actionPerformed(ActionEvent e)
	{
		if(e.getSource() == itemOpen)
		{
			filedialog_load.setVisible(true);
			text.setText(null);
			String s;
			int state = filedialog_load.showOpenDialog(null);
			File file = filedialog_load.getSelectedFile();
			//当选择的要打开的文件不为空,并且点击了批准按钮才能进行打开操作
			if(file != null && state == JFileChooser.APPROVE_OPTION)
			{
				try
				{
					file_reader = new FileReader(file);
					in = new BufferedReader(file_reader);
					while((s = in.readLine()) != null)
						text.append(s+'\n');
					in.close();
					file_reader.close();
				}
				catch(IOException e2) {}
			}
			
		}
		else if(e.getSource() == itemSave)
		{
			filedialog_save.setVisible(true);
			int state = filedialog_save.showSaveDialog(null);
			File file = filedialog_save.getSelectedFile();

			if(text.getText().equals(null) && state == JFileChooser.APPROVE_OPTION)
			{
				try
				{
					tofile = new FileWriter(file);
					out = new BufferedWriter(tofile);
					out.write(text.getText(), 0, (text.getText()).length());
					out.close();
					tofile.close();
				}
				catch(IOException e2) {}
			}
		}
	}

}


  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值