字符虽然需要缓冲区进行处理,但是字符输出有一个特点:可以直接输出一个字符串数据,所以有些时候就需要进行字节流与字符流的操作转换。
在java.io包里面提供两个类:InputStreamReader 、OutputStreamWriter
名称 | InputStreamReader | OutputStreamWriter |
---|---|---|
定义结构: | public class InputStreamReader extends Reader | public class OutputStreamWriter extends Writer |
构造方法: | public InputStreamReader(InputStream in) | public OutputStreamWriter(OutputStream out) |
范例:实现转换
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
public class TransforTest {
public static void main(String[] args) throws Exception {
File file = new File("D:" + File.separator + "Document" + File.separator + "Document" + File.separator + "test.txt");
if (!file.getParentFile().exists()) {
file.getParentFile().mkdirs();
}
OutputStream output = new FileOutputStream(file); //字节流
//将OutputStream类对象传递给OutputStreamWriter类的构造方法,而后向上转型为Writer
Writer out = new OutputStreamWriter(output);
out.write("Hello world!");
out.flush();
out.close();
}
}
如果要进行转换操作,唯一可能出现的形式就是处理中文