1.写文件。向硬盘中写入数据。创建一个fileWriter对象,该对象一被初始化就必须要明确被操作的文件,而且必须确认该目录下是否有同名文件,有将覆盖。
FileWrite fw =new FileWriter(" Demo.txt"); 创建文件后,调用write方法将字符串写入到流中。
fw.write("Hello World!");运行下打开目录下得Demo文件为空,并没有写入,write方法只是把字符串写入到流中,,刷新流对象中的缓冲中的数据。将数据刷到目的地。
fw.flush();最后是关闭流资源,但是再关闭之前要刷新一次内部的缓冲中的数据。
fw.close();
现在我们可以学会了在硬盘上创建文件,如果我们还想添加内容到文件中怎么操作呢?
我们调用FileWriter的另一个构造函数FileWriter(String fileName,boolean append)
根据给定文件名以及附加的写入数据的boolean值来构造FileWriter对象,append值为true时将数据写入文件末尾处。
2.读文件
首先创建一个读取流对象,和指定名称的文件相关联,要保证该文件是已经存在的,如果不存在,会发生异常FileNotFoundException。
FileReader fr=new FileReader(Demo.txt);// 调用读取流对象的read方法,
int ch=fr.read(); read()方法会一次读一个字符,而且会自动往下读。在读取单个字符是,在字符读到末尾时,会返回-1;抛出IOException异常发生i/o错误。
注意,只要涉及java程序和外部程序有i/o输入输出流,就一定会抛出异常。
read还有一种读取方法,就是通过字符数组进行读取。
首先定义一个字符数组,用于存储读取到的数组。返回值读到的字符个数。
FileReader fr=new FileReader(Demo.txt);//
char[] buf= new cha[1024];
int num =0;
while ((num=fr.read(buf))!=-1){
System.out.println(new String(bug,o,num));
}
最后做一道文本文件读取练习,读取一个java文件并打印在控制台上。
//读取一个java文件并打印在控制台上。
import java.io.*;
public class FileRead{
public static void main(String[] args) throws IOException
{
FileReader fr=new FileReader("CalendarDemo.java");
char[] buf= new char[1024];
int num =0;
while ((num=fr.read(buf))!=-1){
System.out.println(new String(buf,0,num));
}
fr.close();
}
} |