一、FileWriter方法的使用:
public static void main(String[] args) {
FileWriter fw =null;
try {
//创建一个FileWriter对象,该对象一被初始化就必须要明确被操作的文件
//而且该文件会被创建到指定目录下,如果该目录下已有同名文件,将被覆盖
//其实该步就是在明确数据要存放的目的地
fw= new FileWriter("Demo.txt",true); //这里传递一个true参数,代表不覆盖已有的文件,并在已有文件的莫维持进行数据续写
//调用writer方法,将字符串写到流中
fw.write("人这一辈子不能太懦弱,这样的话就有人会瞧不起你的,碉堡你知道吗?你再这样下去会没女票的哦亲。。。");
fw.write("\r\n出来爱死你了");
} catch (IOException e) {
e.printStackTrace();
}finally{
if (fw!=null) {
try {
//关闭流资源,但是在关闭之前会刷新一次内容的缓存中数据,将数据刷新到目的地中
//和flush的区别:flush刷新后,流可以继续使用,而close刷新后,会将流关闭。
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
二、FileReader方法的使用:
public static void main(String[] args) throws IOException{
GetFileReader1();
System.out.println("----------------");
GetFileReader2();
}
//读取文件内容的方式一
public static void GetFileReader1() throws IOException{
//创建一个文件读取流对象,和指定名称的文件相关联。
//要保证该文件是已经存在的,如果不存在,会发生异常FileNotFoundException
FileReader fr = new FileReader("Demo.txt");
//调用读取流对象的read方法
//read()一次只能读取一个字符,而且会自动往下读
// while (true) {
// int read = fr.read();
// if (read==-1) {
// break;
// }
// System.out.print((char)read);//在这里必须强转成char类型才能显示
// }
int read = 0;
while ((read = fr.read())!=-1) {
System.out.print((char)read);
}
fr.close();
}
/**
* 第二种方式:通过字符数组进行读取
*/
public static void GetFileReader2() throws IOException{
FileReader fReader = new FileReader("Demo.txt");
//定义一个字符数组,拥有存储读到的字符
//读read(char[])返回的是读到的字符个数
char arr [] = new char[1024];
int num = 0;
while ((num=fReader.read(arr)) !=-1) {
System.out.print(new String(arr,0,num));
}
<span style="white-space:pre"> </span>fReader.close();
}
上面结果输出:
人这一辈子不能太懦弱,这样的话就有人会瞧不起你的,碉堡你知道吗?你再这样下去会没女票的哦亲。。。
出来爱死你了----------------
人这一辈子不能太懦弱,这样的话就有人会瞧不起你的,碉堡你知道吗?你再这样下去会没女票的哦亲。。。
出来爱死你了
三、练习:读取一个.java文件
//读取一个.java文件
public static void Demo() throws IOException{
FileReader fr= new FileReader("E:\\JAVA\\TestMap\\src\\com\\diaobao\\map\\TastMap.java");
char [] render = new char[1024];
int num= 0;
while ((num = fr.read(render))!=-1) {
System.out.print(new String(render,0,num));
}
}