GuangchaoSun's Blog

Java实现记事本

这个实验使用Java语言编写一个记事本应用,涉及到Swing界面编程、文件读写等知识点。

实验环境介绍

本实验环境采用带桌面的 Ubuntu Linux 环境,实验中会用到桌面上的程序 Eclipse 。

实验报告可以在个人主页中查看,其中含有每次实验的截图及笔记,以及每次实验的有效学习时间(即在实验环境内操作的时间。如果没有操作,系统会记录为发呆时间)。这些都是您学习的真实性证明。

知识点

  • Java Swing 界面编程
  • 文件读写

实验结果

实验效果图如下:
可以在完成后的记事本中编辑文本内容、保存文本文件,以及按照指定的路径读取文本文件并显示在文本框中。
FileEditor

同时,代码在FileEditor,里面有比较详细的注释。

参考:

public class FileWriter extends OutputStreamWriter
用来写入字符文件的便捷类。此类的构造方法假定默认字符编码和默认字节缓冲区大小都是可接受的。要自己指定这些值,可以先在 FileOutputStream 上构造一个 OutputStreamWriter
文件是否可用或是否可以被创建取决于基础平台。特别是某些平台一次只允许一个 FileWriter(或其他文件写入对象)打开文件进行写入。在这种情况下,如果所涉及的文件已经打开,则此类中的构造方法将失败。
FileWriter 用于写入字符流。要写入原始字节流,请考虑使用 FileOutputStream

public class FileInputStream extends InputStream
FileInputStream 文件系统中的某个文件中获取输入字节。哪些文件可用取决于主机环境。
FileInputStream 用于读取诸如图像数据之类的原始字节流。要读取字符流,请考虑使用 FileReader

public class BufferedReader extends Reader
从字符输入流中读取文本,缓冲各个字符,从而提供字符、数组和行的高效读取。
可以指定缓冲区的大小,或者可使用默认的大小。大多数情况下,默认值就足够大了。
通常,Reader 所作的每个读取请求都会导致对基础字符或字节流进行相应的读取请求。因此,建议用 BufferedReader 包装所有其 read() 操作可能开销很高的 Reader(如 FileReader 和 InputStreamReader)。例如,

BufferedReader in
  = new BufferedReader(new FileReader("foo.in"));

将缓冲指定文件的输入。如果没有缓冲,则每次调用 read()readLine() 都会导致从文件中读取字节,并将其转换为字符后返回,而这是极其低效的。
可以对使用 DataInputStream 进行按原文输入的程序进行本地化,方法是用合适的 BufferedReader 替换每个 DataInputStream