Java文件(io)编程之记事本开发详解

时间:2021-08-09 03:02:36

本文实例为大家分享了java开发简易记事本的具体代码,供大家参考,具体内容如下

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
public class notepad extends jframe implements actionlistener{
 
 //定义需要的组件
 jtextarea jta=null//多行文本框
 
 jmenubar jmb=null//菜单条
 jmenu jm1=null//菜单
 jmenuitem jmi1=null,jmi2=null; //菜单项
 
 public static void main(string[] args) {
 notepad np=new notepad();
 
 }
 
 public notepad(){  //构造函数
 
 jta=new jtextarea(); //创建jta
 jmb=new jmenubar();
 jm1=new jmenu("文件");
 jm1.setmnemonic('f'); //设置助记符
 
 jmi1=new jmenuitem("打开",new imageicon("imag_3.jpg"));
 jmi1.addactionlistener(this); //注册监听
 jmi1.setactioncommand("open");
 
 jmi2=new jmenuitem("保存");
 jmi2.addactionlistener(this);
 jmi2.setactioncommand("save");
 
 this.setjmenubar(jmb); //加入
 
 jmb.add(jm1);  //把菜单放入菜单条
 
 jm1.add(jmi1);  //把item放入到menu中
 jm1.add(jmi2);
 
 this.add(jta);  //放入到jframe
 
 this.setdefaultcloseoperation(jframe.exit_on_close);
 this.setsize(400,300);
 this.settitle("记事本");
 this.seticonimage((new imageicon("imag_2.jpg")).getimage());
 this.setvisible(true);
 }
 
 @override
 public void actionperformed(actionevent arg0) {
 //判断是哪个菜单被选中
 if(arg0.getactioncommand().equals("open")){
 
 //jfilechooser,创建一个文件选择组件
 jfilechooser jfc1=new jfilechooser();
 jfc1.setdialogtitle("请选择文件……"); //设置名字
 
 jfc1.showopendialog(null); //默认方式
 jfc1.setvisible(true); //显示
 
 //得到用户选择的文件全路径
 string filename=jfc1.getselectedfile().getabsolutepath();
 
 filereader fr=null;
 bufferedreader br=null;
 
 try {
 fr=new filereader(filename);
 br=new bufferedreader(fr);
 
 //从文件中读取信息并显示到jta
 string s="";
 string allcon="";
 while((s=br.readline())!=null){ //循环读取文件,s不为空即还未读完毕
  allcon+=s+"\r\n";
 }
 
 jta.settext(allcon); //放置到jta
 
 } catch (exception e) {
 e.printstacktrace();
 }finally{
 
 try {
  fr.close();
  br.close();
 } catch (exception e) {
  e.printstacktrace();
 }
 }
 }else if(arg0.getactioncommand().equals("save")){
 //出现保存对话框
 jfilechooser jfc2=new jfilechooser();
 jfc2.setdialogtitle("另存为……");
 jfc2.showsavedialog(null); //按默认的方式显示
 jfc2.setvisible(true);
 
 //得到用户希望把文件保存到何处,文件全路径
 string filename2=jfc2.getselectedfile().getabsolutepath();
 
 //准备写入到指定文件
 filewriter fw=null;
 bufferedwriter bw=null;
 
 try {
 fw=new filewriter(filename2);
 bw=new bufferedwriter(fw);
 
 bw.write(this.jta.gettext());
 } catch (exception e) {
 e.printstacktrace();
 }finally{
 try {
  bw.close();
 } catch (ioexception e) {
  e.printstacktrace();
 }
 }
 }
 }
}

运行效果如下

Java文件(io)编程之记事本开发详解

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

Java文件(io)编程之记事本开发详解

打开后,内容显示如下:

Java文件(io)编程之记事本开发详解

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

Java文件(io)编程之记事本开发详解

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:http://www.cnblogs.com/cxq1126/archive/2017/08/11/7347894.html