FileWriter常用方法
- new FileWriter(File/String):覆盖模式,相当于流的指针在首端
- new FileWriter(File/String,true):追加模式,相当于流的指针在尾端
- write(int):写入单个字符
- write(char[]):写入指定数组
- write(char[],off,len):写入指定数组的指定部分
- write (string):写入整个字符串
- write(string,off,len):写入字符串的指定部分
相关API:
- String类:toCharArray:将String转换成char[]
注意:
FileWriter使用后,必须要关闭(close)或刷新(flush),否则写入不到指定的文件!
package test;
import java.io.FileWriter;
import java.io.IOException;
public class Main {
public static void main(String[] args) {
String filePath = "D:\\a.txt";
//创建FileWriter对象
FileWriter fileWriter = null;
char[] chars = {'W', 'T', 'Y'};
try {
fileWriter = new FileWriter(filePath);//默认是覆盖写入
// 3) write(int):写入单个字符
fileWriter.write('H');
// 4) write(char[]):写入指定数组
fileWriter.write(chars);
// 5) write(char[],off,len):写入指定数组的指定部分
fileWriter.write("WTY2002".toCharArray(), 0, 3);
// 6) write(string):写入整个字符串
fileWriter.write("Keep");
// 7) write(string,off,len):写入字符串的指定部分
fileWriter.write("Once", 0, 2);
//在数据量大的情况下,可以使用循环操作.
} catch (IOException e) {
e.printStackTrace();
} finally {
//对应FileWriter , 一定要关闭流,或者flush才能真正的把数据写入到文件
try {
//fileWriter.flush();
//关闭文件流,等价 flush() + 关闭
fileWriter.close();
} catch (IOException e) {
e.printStackTrace();
}
}
System.out.println("程序结束...");
}
}
此处为何任然是追加写法?
覆盖写法是要在关闭流之后,然后打开,再次写入时产生的效果!
案例:
将“别像个轰种似的愁眉苦脸,甭管你被打倒了多少次,拍拍身上的尘土,再笑着站起来吧,再笑着投入战斗。”写入到文件D:\a.txt文件中。
package test;
import java.io.FileWriter;
import java.io.IOException;
public class Main {
public static void main(String[] args) {
String filePath = "D:\\a.txt";
//创建FileWriter对象
FileWriter fileWriter = null;
try {
fileWriter = new FileWriter(filePath);//默认是覆盖写入
//write(string):写入整个字符串
fileWriter.write("别像个轰种似的愁眉苦脸,甭管你被打倒了多少次,拍拍身上的尘土,再笑着站起来吧,再笑着投入战斗。");
} catch (IOException e) {
e.printStackTrace();
} finally {
//对应FileWriter , 一定要关闭流,或者flush才能真正的把数据写入到文件
try {
//fileWriter.flush();
//关闭文件流,等价 flush() + 关闭
fileWriter.close();
} catch (IOException e) {
e.printStackTrace();
}
}
System.out.println("程序结束...");
}
}