Java文件(io)编程——简易记事本开发

  1 public class NotePad extends JFrame implements ActionListener{
  2
  3     //定义需要的组件
  4     JTextArea jta=null;                    //多行文本框
  5
  6     JMenuBar jmb=null;                     //菜单条
  7     JMenu jm1=null;                        //菜单
  8     JMenuItem jmi1=null,jmi2=null;         //菜单项
  9
 10     public static void main(String[] args) {
 11         NotePad np=new NotePad();
 12
 13     }
 14
 15     public NotePad(){                     //构造函数
 16
 17         jta=new JTextArea();              //创建jta
 18         jmb=new JMenuBar();
 19         jm1=new JMenu("文件");
 20         jm1.setMnemonic(‘F‘);             //设置助记符
 21
 22         jmi1=new JMenuItem("打开",new ImageIcon("imag_3.jpg"));
 23         jmi1.addActionListener(this);     //注册监听
 24         jmi1.setActionCommand("open");
 25
 26         jmi2=new JMenuItem("保存");
 27         jmi2.addActionListener(this);
 28         jmi2.setActionCommand("save");
 29
 30         this.setJMenuBar(jmb);            //加入
 31
 32         jmb.add(jm1);                     //把菜单放入菜单条
 33
 34         jm1.add(jmi1);                    //把item放入到Menu中
 35         jm1.add(jmi2);
 36
 37         this.add(jta);                   //放入到JFrame
 38
 39         this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 40         this.setSize(400,300);
 41         this.setTitle("记事本");
 42         this.setIconImage((new ImageIcon("imag_2.jpg")).getImage());
 43         this.setVisible(true);
 44     }
 45
 46     @Override
 47     public void actionPerformed(ActionEvent arg0) {
 48         //判断是哪个菜单被选中
 49         if(arg0.getActionCommand().equals("open")){
 50
 51             //JFileChooser,创建一个文件选择组件
 52             JFileChooser jfc1=new JFileChooser();
 53             jfc1.setDialogTitle("请选择文件……");  //设置名字
 54
 55             jfc1.showOpenDialog(null);           //默认方式
 56             jfc1.setVisible(true);               //显示
 57
 58             //得到用户选择的文件全路径
 59             String filename=jfc1.getSelectedFile().getAbsolutePath();
 60
 61             FileReader fr=null;
 62             BufferedReader br=null;
 63
 64             try {
 65                 fr=new FileReader(filename);
 66                 br=new BufferedReader(fr);
 67
 68                 //从文件中读取信息并显示到jta
 69                 String s="";
 70                 String allCon="";
 71                 while((s=br.readLine())!=null){   //循环读取文件,s不为空即还未读完毕
 72                     allCon+=s+"\r\n";
 73                 }
 74
 75                 jta.setText(allCon);              //放置到jta
 76
 77             } catch (Exception e) {
 78                 e.printStackTrace();
 79             }finally{
 80
 81                 try {
 82                     fr.close();
 83                     br.close();
 84                 } catch (Exception e) {
 85                     e.printStackTrace();
 86                 }
 87             }
 88         }else if(arg0.getActionCommand().equals("save")){
 89             //出现保存对话框
 90             JFileChooser jfc2=new JFileChooser();
 91             jfc2.setDialogTitle("另存为……");
 92             jfc2.showSaveDialog(null);                //按默认的方式显示
 93             jfc2.setVisible(true);
 94
 95             //得到用户希望把文件保存到何处,文件全路径
 96             String filename2=jfc2.getSelectedFile().getAbsolutePath();
 97
 98             //准备写入到指定文件
 99             FileWriter fw=null;
100             BufferedWriter bw=null;
101
102             try {
103                 fw=new FileWriter(filename2);
104                 bw=new BufferedWriter(fw);
105
106                 bw.write(this.jta.getText());
107             } catch (Exception e) {
108                 e.printStackTrace();
109             }finally{
110                 try {
111                     bw.close();
112                 } catch (IOException e) {
113                     e.printStackTrace();
114                 }
115             }
116         }
117     }
118 }

运行效果如下:

点击文件按钮,点击打开菜单项,选择一个文本文件,效果如下:

打开后,内容显示如下:

对内容稍作修改,另存为名为sss的文件,效果如下:

时间: 2024-08-10 14:56:21

Java文件(io)编程——简易记事本开发的相关文章

Java文件(io)编程——文件字节流的使用

案例1: 演示FileInputStream类的使用(用FileInputStream的对象把文件读入到内存) 首先要在E盘新建一个文本文件,命名为test.txt,输入若干字符 1 public class Demo_2 { 2 3 public static void main(String[] args) { 4 File f=new File("e:\\test.txt"); //得到一个文件对象f,指向e:\\test.txt 5 FileInputStream fis=nu

Java 之文件IO编程 之写入

package com.sun; /* * 操作对文件IO的写 * 2014-08-10 */ import java.io.*; public class File_Write { public static void main(String[] args) { // TODO Auto-generated method stub FileOutputStream fos=null; //创建一个文件对象 File file_writer = new File ("d:\\bb.txt&quo

Java 之文件IO编程 之读取

1 package com.sun; 2 /* 3 * 这里是对文件IO流读取的操作 4 * 2014-08-10 5 */ 6 import java.io.*; 7 public class File_test { 8 9 10 public static void main(String[] args) { 11 //创建一个文件对象 12 FileInputStream fis=null; 13 14 File srcFile = new File("d:\\aa.txt");

Java文件IO操作应该抛弃File拥抱Path和Files

Java7中文件IO发生了很大的变化,专门引入了很多新的类: import java.nio.file.DirectoryStream;import java.nio.file.FileSystem;import java.nio.file.FileSystems;import java.nio.file.Files;import java.nio.file.Path;import java.nio.file.Paths;import java.nio.file.attribute.FileAt

Java文件Io基础

本文为java文件应用中一些基础知识的例子和总结,仅供参考 File file2 = new File("D:/test.txt");//创建文件对象,File类中的构造方法中的参数为字符串,表示的是文件的地址,其中,在绝对路径中,磁盘的编号后的斜杆可以为"\\"(Windows系统中路径标识),也可以为"/"(跨平台). 制定路径之下创建的文件对象,不代表着该路径之下有这个文件,也就是说File对象无关实际文件的位置. 可以通过File.exi

简易记事本(演示java文件io)

演示效果:  打开txt文件 输入文字,保存 选择保存地址 生成文件 源代码: 1 package io; 2 import java.io.*; 3 import java.awt.*; 4 import java.awt.event.ActionEvent; 5 import java.awt.event.ActionListener; 6 7 import javax.swing.*; 8 9 10 11 public class text extends JFrame implement

Java 网络IO编程总结(BIO、NIO、AIO均含完整实例代码)

转载请注明出处:http://blog.csdn.net/anxpp/article/details/51512200,谢谢! 本文会从传统的BIO到NIO再到AIO自浅至深介绍,并附上完整的代码讲解. 下面代码中会使用这样一个例子:客户端发送一段算式的字符串到服务器,服务器计算后返回结果到客户端. 代码的所有说明,都直接作为注释,嵌入到代码中,看代码时就能更容易理解,代码中会用到一个计算结果的工具类,见文章代码部分. 相关的基础知识文章推荐: Linux 网络 I/O 模型简介(图文) Jav

(转)Java 网络IO编程总结(BIO、NIO、AIO均含完整实例代码)

原文出自:http://blog.csdn.net/anxpp/article/details/51512200 1.BIO编程 1.1.传统的BIO编程 网络编程的基本模型是C/S模型,即两个进程间的通信. 服务端提供IP和监听端口,客户端通过连接操作想服务端监听的地址发起连接请求,通过三次握手连接,如果连接成功建立,双方就可以通过套接字进行通信. 传统的同步阻塞模型开发中,ServerSocket负责绑定IP地址,启动监听端口:Socket负责发起连接操作.连接成功后,双方通过输入和输出流进

JAVA的IO编程:管道流

掌握线程通讯流(管道流)的使用 管道流的主要作用是可以进行两个线程间的通讯,分为管道输入流(PipeOutputStream)和管道输出流(PipeInputStream). 如果要想进行管道输出,则必须把输出流连在输入流之上,在PipeOutputStream上有如下方法用于连接管道. void connect(PipedInputStream snk) 将此管道输出流连接到接收者. 要想连接输入和输出,必须使用此方法. PipeOutputStream输出方法: void write(byt