字节流是以字节为单位进行数据的传输,字符流传输的一般是图片,音频,视频等格式的文件,字符流是以字符为单位进行数据的传输,要实现字符输出流操作需要使用到的类有:抽象类java.io.Writer以及其子类FileWriter类
public void write(char[] cbuf) throws IOException
每次输出一个数组长度的内容
public void write(char[] cbuf, int off, int len)
每次输出数组的指定内容
public void write(String str)
每次直接输出一个字符串内容
package com.sxt;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
public class CharFileDemo01 {
public static void main(String[] args) throws IOException {
File file = new File("E:" + File.separator + "demo" + File.separator + "text.txt");
//判断文件父目录是否存在
if (!file.getParentFile().exists()) {
file.getParentFile().mkdirs();
}
//取得字符输出流对象
Writer out = new FileWriter(file);
//取得数据
char [] chs = "大家好,节日快乐!".toCharArray();
//输出数据
for (int i = 0; i < chs.length; i++) {
out.write(chs[i]);
}
}
}
此时发现了文件中没有需要输出的内容,原因是字符流需要经过缓冲区,数据还保存在缓冲区的,此时需要将缓冲区的内容强行输出到文件,有两种方式,一种是使用“flush()”方法,另外一种是关闭流即可,即调用==close()==方法
关闭流之后:
package com.sxt;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
public class CharFileDemo01 {
public static void main(String[] args) throws IOException {
File file = new File("E:" + File.separator + "demo" + File.separator + "text.txt");
//判断文件父目录是否存在
if (!file.getParentFile().exists()) {
file.getParentFile().mkdirs();
}
//取得字符输出流对象
Writer out = new FileWriter(file);
//取得数据
char [] chs = "大家好,节日快乐!".toCharArray();
//输出数据
for (int i = 0