FileWriter:用来写入字符文件的便捷类。此类的构造方法假定默认字符编码和默认字节缓冲区大小都是可接受的。要自己指定这些值,可以先在 FileOutputStream 上构造一个 OutputStreamWriter。
文件是否可用或是否可以被创建取决于底层平台。特别是某些平台一次只允许一个 FileWriter(或其他文件写入对象)打开文件进行写入。在这种情况下,如果所涉及的文件已经打开,则此类中的构造方法将失败。
FileWriter
用于写入字符流。要写入原始字节流,请考虑使用FileOutputStream
。
第一步:创建字符输出流对象 怎么创建?? ==》通过FileWriter的构造方法创建
构造方法摘要 FileWriter(File file)
根据给定的 File 对象构造一个 FileWriter 对象。FileWriter(File file, boolean append)
根据给定的 File 对象构造一个 FileWriter 对象。FileWriter(FileDescriptor fd)
构造与某个文件描述符相关联的 FileWriter 对象。FileWriter(String fileName)
根据给定的文件名构造一个 FileWriter 对象。FileWriter(String fileName, boolean append)
根据给定的文件名以及指示是否附加写入数据的 boolean 值来构造 FileWriter 对象。
第二步:写入内容 怎么写进去?? ==》 通过FileWriter的write方法(从类 java.io.OutputStreamWriter 继承的方法)
public void write(int c) throws IOException:写入单个字符。
public void write(char[] cbuf, int off, int len) throws IOException:写入字符数组的某一部分。
参数:
cbuf
- 字符缓冲区
off
- 开始写入字符处的偏移量
len
- 要写入的字符数
public void write(String str, int off, int len) throws IOException:写入字符串的某一部分。
参数:
str
- 字符串
off
- 开始写入字符处的偏移量
len
- 要写入的字符数
第三步:关闭流
ex:
/*** 字符流-文件输出流FileWriter 将数据写入到磁盘文件:* 1.创建字符输出流对象 怎么创建?? ==》通过FileWriter的构造方法创建* ①:FileWriter(File file) :根据给定的 File 对象构造一个 FileWriter 对象。 * ②:FileWriter(File file, boolean append) :根据给定的 File 对象构造一个 FileWriter 对象。 * ③:FileWriter(FileDescriptor fd) :构造与某个文件描述符相关联的 FileWriter 对象。 * ④:FileWriter(String fileName) : 根据给定的文件名构造一个 FileWriter 对象。 * ⑤:FileWriter(String fileName, boolean append) :根据给定的文件名以及指示是否附加写入数据的 boolean 值来构造 FileWriter 对象。 * 2.写入内容 怎么写进去?? ==》 通过FileWriter的write方法(从类 java.io.OutputStreamWriter 继承的方法)* ①:public void write(int c) throws IOException:写入单个字符。* ②:public void write(char[] cbuf, int off, int len) throws IOException:写入字符数组的某一部分。* ③:public void write(String str, int off, int len) throws IOException:写入字符串的某一部分。* 3.关闭流* * 注意: ①:要刷新或者关闭流才能将数据写入到文件中!!* ②:关闭流的时候会自动刷新流* ③:关闭流之后不能再使用流!!* @author 郑清*/
public class Demo {public static void main(String[] args) throws IOException {//1.创建字符输出流对象FileWriter fw = new FileWriter("D:1/1.txt");//2.写入数据:fw.write(97);//写入字节afw.flush();//刷新流fw.write("这是要写入的数据内容!");//写入字符串fw.write(new char[]{'A','B','C'});//写入字符fw.write("123456", 1, 3);//写入从字符串中起始位置为1 的 3个字符 (即写入的数据为:234)//3.关闭流fw.close();}}