FileWriter中5种write方式
1>write(int):写入单个字符
2>write(char[]):写入指定数组
3>write(char[],off,len):写入指定数组的指定部分
4>write(String):写入整个字符串
5>write(String,off,len):写入字符串的指定部分
package com.elf.Writer_;
import java.io.FileWriter;
import java.io.IOException;
/**
* @author 45~
* @version 1.0
*/
public class FileWriter_ {
public static void main(String[] args) {
String filePath = "d:\\note.txt";
//创建FileWriter对象
FileWriter fileWriter = null;
char[] chars = {'a', 'b', 'c'};
try {
fileWriter = new FileWriter(filePath);
//5种write方式
// 1>write(int):写入单个字符
fileWriter.write('H');
// 2>write(char[]):写入指定数组 //注意目前是覆盖写入,即接着前面已有的再往后写
fileWriter.write(chars);
// 3>write(char[],off,len):写入指定数组的指定部分
//.toCharArray()可将文字转化成字符数组
fileWriter.write("你的文字还爱她".toCharArray(), 4, 3);
// 4>write(String):写入整个字符串
fileWriter.write(" 玫瑰荆棘~");
// 5>write(String,off,len):写入字符串的指定部分
fileWriter.write("上海~北京", 0, 3);
} catch (Exception e) {
e.printStackTrace();
} finally {
//对于FileWriter,一定要关闭流,或者flush才能真正的把数据写入
/*
* 底层源码 writeBytes(),底层还是用FileOutputStream
private void writeBytes() throws IOException {
this.bb.flip();
int var1 = this.bb.limit();
int var2 = this.bb.position();
assert var2 <= var1;
int var3 = var2 <= var1 ? var1 - var2 : 0;
if (var3 > 0) {
if (this.ch != null) {
assert this.ch.write(this.bb) == var3 : var3;
} else {
this.out.write(this.bb.array(), this.bb.arrayOffset() + var2, var3);
}
}
this.bb.clear();
}
*
*/
try {
//fileWriter.flush();//关闭文件流等价于flush()+关闭
fileWriter.close();
} catch (IOException e) {
e.printStackTrace();
}
}
System.out.println("程序结束 ");
}
}