Java之输入输出流(文件的读写)
首先,在编程的世界,流明显显得很重要。C++的输入输出流,Java的输入输出流等等。
首先我们得学会如何使用Java的输入输出流。首先,它们被封装在Java的一个叫做java.io的包中,编程时也必须导入此包。
我们首先编写一个程序,此程序能够简单的使用到Java语言的输入输出流。
编写一个简单的文件写入 和读出的操作。(源代码如下)
importjava.io.*;
publicclassTest1 {
publicstaticvoidmain(String[] args) throwsIOException {
StringfilePath = "D:\\c.txt";
FileWriterwriter = newFileWriter(filePath);
writer.write("HelloMy name is Jack_Li.\r\n"); //可以写入英文
writer.write("你好,我的名字是杰克.\r\n"); //也可以写入中文 字节码内部转换
writer.close();
}
}
运行以上程序,即可在D盘下建立一个c.txt文件,并且显示的内容即为程序中写入的内容。
好了,我们现在剖析一下程序,首先,在文件写入和读出过程中,可能会出现,文件写入或读出的错误,一般会使用异常。这里简单的抛出一个IO异常,现在是FileWriter这个类是干嘛的?
打开JDK(这里版本是1.6.0),文档如是道:
publicclass FileWriter
extendsOutputStreamWriter
用来写入字符文件的便捷类。此类的构造方法假定默认字符编码和默认字节缓冲区大小都是可接受的。要自己指定这些值,可以先在FileOutputStream上构造一个OutputStreamWriter。
文件是否可用或是否可以被创建取决于底层平台。特别是某些平台一次只允许一个FileWriter(或其他文件写入对象)打开文件进行写入。在这种情况下,如果所涉及的文件已经打开,则此类中的构造方法将失败。
FileWriter用于写入字符流。要写入原始字节流,请考虑使用FileOutputStream。
我们可以清洗的看见大它的功能是什么。
这个类的方法主要包括从java.io.OutputStreamWriter继承的方法,从java.io.Writer继承的方法,从java.lang.Object继承的方法(此方法所有类都继承),使用时便可查阅文档。
现在介绍一下文件的读出操作。请看源代码
importjava.io.*; //进行数据的读取
publicclassTest2 {
publicstaticvoidmain(String[] args) throwsIOException{
StringfilePath = "D:\\c.txt";
Stringline;
BufferedReaderin= newBufferedReader(newFileReader(filePath));
line= in.readLine();
while(line!= null)
{
System.out.println(line);
line= in.readLine();
}
in.close();
}
}
此时文件的读取使用了BufferedReader类,此类进行文件的读取比较方便而且高效。(类的情况介绍详见JDK)。
文件输入输出的扩展,首先我们可以简单的编写一个单文档程序,模拟文件中的打开和保存功能,并且添加基本的复制,粘贴,剪贴功能。
源程序如下:
importjava.awt.*;
importjava.awt.event.*;
importjava.io.*;
importjavax.swing.*; //利用JTextArea 此类方法比较多
importjava.util.Date;
importjava.text.SimpleDateFormat;
classeditMenu
{
privateJFrame f;
privateJTextArea ta;
privateJMenuBar mb;
privateJMenu editMenuItem