Java文件(io)编程——简易记事本开发
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();
}
}
}
}
}
运行效果如下:
点击文件按钮,点击打开菜单项,选择一个文本文件,效果如下:
打开后,内容显示如下:
对内容稍作修改,另存为名为sss的文件,效果如下:
Java文件(io)编程——简易记事本开发的更多相关文章
- Java文件(io)编程——文件字符流的使用
案例1: 读取一个文件并写入到另一个文件中,char[] 来中转. 首先要在E盘下创建一个文本文档,命名为test.txt,输入一些字符串. public class Demo_5 { public ...
- Java文件(io)编程——文件字节流的使用
案例1: 演示FileInputStream类的使用(用FileInputStream的对象把文件读入到内存) 首先要在E盘新建一个文本文件,命名为test.txt,输入若干字符 public cla ...
- Java文件(io)编程——File类的基本用法
1.首先了解文件流的相关概念: 2.文件File类的基本用法 public class Demo_1 { public static void main(String[] args) { //创建一个 ...
- 《嵌入式linux应用程序开发标准教程》笔记——6.文件IO编程
前段时间看APUE,确实比较详细,不过过于详细了,当成工具书倒是比较合适,还是读一读这种培训机构的书籍,进度会比较快,遇到问题时再回去翻翻APUE,这样的效率可能更高一些. <嵌入式linux应 ...
- Java - 文件(IO流)
Java - 文件 (IO) 流的分类: > 文件流:FileInputStream | FileOutputStream | FileReader | FileWriter ...
- Java 之文件IO编程 之写入
package com.sun; /* * 操作对文件IO的写 * 2014-08-10 */ import java.io.*; public class File_Write { public s ...
- Java 之文件IO编程 之读取
package com.sun; /* * 这里是对文件IO流读取的操作 * 2014-08-10 */ import java.io.*; public class File_test { publ ...
- Java 文件IO
文件IO Java IO IO流用来处理设备之间的数据传输 Java对数据的操作是通过流的方式 Java用于操作流的对象都在IO包中 按操作数据分为 字节流和字符流 字符流的 ...
- Java 文件 IO 操作
window 路径分割符: \ 表示 windows 系统文件目录分割符 java 代码在 windows 下写某个文件的话需要下面的方式 D:\\soft\\sdclass.txt 其中一个单斜杠 ...
随机推荐
- 继承TabActivity后不执行onBackPressed()里的方法
// 用下面这个函数拦截子Activity的返回操作 @Override public boolean dispatchKeyEvent(KeyEvent event) { ...
- redis模拟消息订阅
使用办法: 订阅端: Subscribe 频道名称 发布端: publish 频道名称 发布内容 客户端例子: redis 127.0.0.1:6379> subscribe news Read ...
- c#经典书籍
1.c#本质论 讲的很清楚,通俗易懂,且比较深入. 2.WPF编程宝典.ASP.NET MVC高级编程. 界面类图书 3.Microsoft.NET企业级应用架构设计 框架类图书 4.c#深入详解
- SpringBoot(六) SpirngBoot与Mysql关系型数据库
pom.xml文件的配置 <dependency> <groupId>org.springframework.boot</groupId> <artifact ...
- 学习篇之SVG
学习篇之SVG 一.use重用 与 g组合 xmlns变量实际上指示浏览器如何解释称为SVG的XML方言 <g></g> 组合 <use /> 重用 <ell ...
- javaweb 之 文件上传与下载
1.文件上传的原理分析 1.1文件上传的必要前提: a.提供form表单,method必须是post b.form表单的enctype必须是multipart/form-data c.提供input ...
- 微信小程序遇坑笔记
最近做了一个简单的微信小程序,遇到了一些坑: 1.appid固定,但是appsecret是可以变的,而且没有地方查看,后台以查看就是变更了,所以这个地方在开发的时候需要保存好: 2.打开网页,这个网页 ...
- Declarative programming-声明式编程-布局约束是一个案例
声明式编程需要底层或运行时环境支持. 声明式语言的关键词确定了执行的关键控制流. 表述编程语言是说明性的东西:而不是具体的执行方案. 通常他的执行由解释器进行. In computer science ...
- 用 Java 技术创建 RESTful Web (服务 JAX-RS:一种更为简单、可移植性更好的替代方式)
作者: Dustin Amrhein, 软件工程师, IBM Nick Gallardo, 软件工程师, IBM 出处: http://www.ibm.com/developerworks/cn/we ...
- Jquery JS 全局变量
window["a1"]="abc";window["b1"]=5;