演示效果:
 

打开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. public class text extends JFrame implements ActionListener{
  10.  
  11. /**
  12. * @param args
  13. */
  14. //需要的组件
  15. //文本框
  16. JTextArea jta1=null;
  17. //菜单条
  18. JMenuBar jmb1=null;
  19.  
  20. //菜单
  21.  
  22. JMenu jm1=null;
  23. //菜单项
  24. JMenuItem jmi1=null;
  25. JMenuItem jmi2=null;
  26.  
  27. JScrollPane jsp1=null;
  28.  
  29. public static void main(String[] args) {
  30. // TODO Auto-generated method stub
  31.  
  32. text show=new text();
  33.  
  34. }
  35.  
  36. public text()
  37. {
  38. //文本框
  39. jta1 =new JTextArea();
  40.  
  41. //菜单条
  42. jmb1=new JMenuBar();
  43.  
  44. //菜单
  45.  
  46. jm1=new JMenu("文件(0)");
  47. //助记符
  48. jm1.setMnemonic('F');
  49.  
  50. //菜单项
  51. jmi1=new JMenuItem("打开",new ImageIcon("src/10.gif"));
  52.  
  53. //注册监听
  54.  
  55. jmi1.addActionListener(this);
  56. jmi1.setActionCommand("open");
  57.  
  58. jmi2=new JMenuItem("保存",new ImageIcon("src/9.gif"));
  59.  
  60. //注册监听
  61. jmi2.addActionListener(this);
  62. jmi2.setActionCommand("save");
  63.  
  64. this.setJMenuBar(jmb1);
  65. jmb1.add(jm1);
  66. jm1.add(jmi1);
  67. jm1.add(jmi2);
  68.  
  69. jsp1=new JScrollPane(jta1);
  70.  
  71. this.add(jsp1);
  72.  
  73. this.setTitle("记事本");
  74. this.setSize(400, 300);
  75. this.setLocation(100, 100);
  76. this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  77. this.setVisible(true);
  78. }
  79.  
  80. @Override
  81. public void actionPerformed(ActionEvent arg0) {
  82. // TODO Auto-generated method stub
  83. //判断
  84.  
  85. if(arg0.getActionCommand().equals("open"))
  86. {
  87. //文件选择组件
  88. JFileChooser jfc1=new JFileChooser();
  89. //设置名字
  90. jfc1.setDialogTitle("请选择文件…");
  91.  
  92. //设置组件.null表示默认方式
  93. jfc1.showOpenDialog(null);
  94.  
  95. jfc1.setVisible(true);
  96. //得到用户选择的文件路径
  97.  
  98. String filename1=jfc1.getSelectedFile().getAbsolutePath();
  99.  
  100. //读取
  101. FileReader fr1=null;
  102.  
  103. BufferedReader br1=null;
  104.  
  105. try {
  106. fr1=new FileReader(filename1);
  107. br1=new BufferedReader(fr1);
  108.  
  109. //读取信息,显示到文本框jta1
  110.  
  111. String s="";
  112. String all="";
  113. while((s=br1.readLine())!=null)
  114. {
  115. all+=s+"\r\n";
  116. //jta1.setText(s+"\r\n");
  117. }
  118.  
  119. jta1.setText(all);
  120.  
  121. } catch (FileNotFoundException e) {
  122. // TODO Auto-generated catch block
  123. e.printStackTrace();
  124. } catch (IOException e) {
  125. // TODO Auto-generated catch block
  126. e.printStackTrace();
  127. }
  128. finally{
  129. try {
  130. fr1.close();
  131. } catch (IOException e) {
  132. // TODO Auto-generated catch block
  133. e.printStackTrace();
  134. }
  135. try {
  136. br1.close();
  137. } catch (IOException e) {
  138. // TODO Auto-generated catch block
  139. e.printStackTrace();
  140. }
  141. }
  142. }
  143.  
  144. else if(arg0.getActionCommand().equals("save"))
  145. {
  146. //文件选择组件
  147. JFileChooser jfc1=new JFileChooser();
  148. //设置名字
  149. jfc1.setDialogTitle("保存文件…");
  150.  
  151. //设置组件.null表示默认方式
  152. jfc1.showSaveDialog(null);
  153.  
  154. jfc1.setVisible(true);
  155. //得到用户选择的文件路径
  156.  
  157. //得到用户选择的文件路径
  158.  
  159. String filename1=jfc1.getSelectedFile().getAbsolutePath();
  160.  
  161. //写入
  162. FileWriter fw1=null;
  163.  
  164. BufferedWriter bw1=null;
  165.  
  166. try {
  167. fw1=new FileWriter(filename1);
  168.  
  169. //写入信息,显示到文本框jta1
  170.  
  171. fw1.write(this.jta1.getText());
  172.  
  173. } catch (FileNotFoundException e) {
  174. // TODO Auto-generated catch block
  175. e.printStackTrace();
  176. } catch (IOException e) {
  177. // TODO Auto-generated catch block
  178. e.printStackTrace();
  179. }
  180. finally{
  181. try {
  182. fw1.close();
  183. } catch (IOException e) {
  184. // TODO Auto-generated catch block
  185. e.printStackTrace();
  186. }
  187. try {
  188. bw1.close();
  189. } catch (IOException e) {
  190. // TODO Auto-generated catch block
  191. e.printStackTrace();
  192. }
  193. }
  194.  
  195. }
  196. }
  197.  
  198. }

简易记事本(演示java文件io)的更多相关文章

  1. Java - 文件(IO流)

    Java - 文件 (IO)   流的分类:     > 文件流:FileInputStream | FileOutputStream | FileReader | FileWriter     ...

  2. Java 文件IO续

    文件IO续 File类    用来将文件和文件夹封装成对象 方便对文件和文件夹的属性信息进行操作    File对象可以作为参数传递给流的构造函数 Demo1 File的构造方法 public cla ...

  3. Java文件IO操作应该抛弃File拥抱Paths和Files

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

  4. Java 文件IO

    文件IO Java IO    IO流用来处理设备之间的数据传输 Java对数据的操作是通过流的方式 Java用于操作流的对象都在IO包中    按操作数据分为 字节流和字符流        字符流的 ...

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

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

  6. Java文件IO流的操作总结

    Java中的IO操作涉及到的概念及相关类很多,很容易弄混,今天特来整理总结一下,并附上一份完整的文件操作的代码. 概念解析 读和写 流就是管道,向管道里面写数据用输出流:write 从管道里面读数据, ...

  7. Java 文件 IO 操作

    window 路径分割符: \ 表示 windows 系统文件目录分割符 java 代码在 windows 下写某个文件的话需要下面的方式 D:\\soft\\sdclass.txt  其中一个单斜杠 ...

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

    public class NotePad extends JFrame implements ActionListener{ //定义需要的组件 JTextArea jta=null; //多行文本框 ...

  9. java文件IO操作

    package com.io; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream ...

随机推荐

  1. python multiprocess不能完全关闭socket的验证

    近日项目有原来的多线程升级成为多进程模型后,但出现了个问题,在持续运行一天左右系统处理能力开始变慢,并不时打印以下信息: too many opened files 修改ulimit中open fil ...

  2. 最简单好用的SSO - 能经得起几万并发用户的SSO 组件使用方法介绍

    项目中使用了通用权限管理系统,该系统集成了单点登录功能,下面我来介绍下该单点登录实现的一些细节. 首先我们来看看其登录接口,系统本身支持各种登录方式: 1.公司名.用户名.密码 2.唯一账号.密码 3 ...

  3. Javascript与Ajax

    不使用jquery来处理ajax请求该怎么做? 首先要明确html中的某些数据需要从服务端获得,也就是客户端向服务端请求(request)数据,服务端就响应(response)这个请求,把客户端要的数 ...

  4. ASP.NET MVC ModelState

    添加一个模型状态: ModelState.Add("IamKey", new ModelState { Value = new ValueProviderResult(" ...

  5. iOS 新特性关键字

    1.用来修饰属性,或者方法的参数,方法的返回值 /** nullable:表示可以传空 */ //@property (nonatomic, strong, nullable) NSString *n ...

  6. 使用NumberPicker定制自己喜欢的Date&TimePicker

    1.NumberPicker简介: NumberPicker是Android3.0之后引入的一个控件,主要功能是用于选择一组预定义好数字的控件. 该控件主要需要指导一个用于监听当前value变化的li ...

  7. 《Cortex-M0权威指南》之绪论

    转载请注明来源:cuixiaolei的技术博客 1.1 为什么要选择Cortex-M0 为了满足现代超低功耗微控制器和混合信号设备的需要,ARM推出了Cortex-M0处理器.Cortex-M0在保持 ...

  8. 改变linux shell前景色和背景色

    作者:马 岩(Furzoom) (http://www.cnblogs.com/furzoom/)版权声明:本文的版权归作者与博客园共同所有.转载时请在明显地方注明本文的详细链接,未经作者同意请不要删 ...

  9. HDU 3533 Escape (BFS + 预处理)

    Escape Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total S ...

  10. hdu 4665 搜索

    思路:直接搜索 #include<iostream> #include<cstdio> #include<algorithm> #include<cstrin ...