赞
踩
文件字符流(FileReader/FileWriter)针对文件字符的操作,不同于文件字节流(FileInputStream/FileOutputStream)。它是针对字符来进行操作的,因此他在处理纯字符集(纯文本)时十分的方便。而文件字节流能够处理音频,视频等等除纯文本以外的文件类型,因为他们是以字节为单位的。但是文件字符流不能够处理字节,它只能处理以字符为单位的文件。因此他不能处理音频,视频等以字节为单位的文件。
文件字符输入流是将文件中的字符读取到程序中。
文件字符流的操作步骤与文件字节流一样:
1.创建源
2.选择流
3.具体操作
4.释放资源
以文件字符流操作纯文本文件,可以很好的解决乱码的问题。具体代码如下:
- import java.io.*;
-
- /**
- * 测试Reader(对字符进行操作)
- * 字符数组-->字符串
- * Reader:read()
- */
- public class TestReader {
- public static void main(String[] args) {
- //创建源
- File file = new File("abc.txt");
- //选择流
- Reader reader = null;
- try {
- reader = new FileReader(file);
- //操作
- char[] flush = new char[1024]; //缓冲容器 InputStream:byte[](字节数组) Reader:char[](字符数组)
- int len = -1; //接收长度
- try {
- while ((len = reader.read(flush))!=-1){
- //字符数组-->字符串
- String str = new String(flush,0,len);
- System.out.print(str);
- }
- } catch (IOException e) {
- e.printStackTrace();
- }
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- }finally {
- try {
- if (reader!=null){
- reader.close();
- }
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- }
以字符数组为单位进行操作,因此定义读取的字符数组char[],每次读取1024个字符,然后转化成字符串(String str = new String(flush,0,len))在进行写出。
文件字符输出流是将程序中的字符串以字符形式写出到文件中去。具体代码如下:
- import java.io.File;
- import java.io.FileWriter;
- import java.io.IOException;
- import java.io.Writer;
-
- /**
- * 测试Writer(对字符进行操作)
- * 字符串-->字符数组
- */
- public class TestWriter {
- public static void main(String[] args) {
- //创建源
- File file = new File("dest.txt");
- //选择流
- Writer writer = null;
- try {
- writer = new FileWriter(file,true);
- //操作
- //写法一
- // String str = "问君能有几多愁?恰似一江春水向东流。";
- // //字符串-->字符数组
- // char[] datas = str.toCharArray();
- // writer.write(datas,0,datas.length);
- //写法二
- // String str = "问君能有几多愁?恰似一江春水向东流。";
- // writer.write("\t"+str);
- //写法三
- String str = "\n问君能有几多愁?恰似没穿秋裤遇寒流。";
- String str1 = "\n笑渐不闻声渐悄,多情却被无情恼";
- writer.append(str).append(str1);
- writer.flush();
- } catch (IOException e) {
- e.printStackTrace();
- }finally {
- try {
- if (writer!=null){
- writer.close();
- }
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- }
FileWriter是将字符串转化为字符数组(char[] datas = str.toCharArray())然后进行写出,如果进行多个字符串的写出,可以使用writer.append()进行追加,这样可以一次性写出多条字符串语句到文件中。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。