Java文件与流-文件与流-FileReader与FileWriter字符输出流
原创约 844 字大约 3 分钟...
236-Java文件与流-文件与流-FileReader与FileWriter字符输出流.md
注意
本博文仅供学术研究和交流参考,严禁将其用于商业用途。如因违规使用产生的任何法律问题,使用者需自行负责。
概念


示例代码
package com.tencent.chapter03.io流;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Arrays;
public class FileReaderAndFileWriter {
/**
FileReader:以字符为单位读取数据
FileWriter:以字符为单位写出数据
将文件file/file.txt复制到file/file_bak.txt文件中
*/
public static void main(String[] args) {
FileReader reader = null;
FileWriter writer = null;
try {
//字符输入流
reader = new FileReader("file/file.txt");
//字符输出流
writer = new FileWriter("file/file_bak.txt");
/*
读取到的字符个数:3 读取到的字符 :[1, 2, 3]
读取到的字符个数:3 读取到的字符 :[a, b, c]
读取到的字符个数:1 读取到的字符 :[中, b, c]
*/
char[] c = new char[3];//用于保存每次读取的字符数据,一般设置为1024的倍数
int count = -1; //用于保存读取到的字符个数
while((count = reader.read(c)) != -1)
{
System.out.println("读取到的字符个数:" + count + " 读取到的字符 :" + Arrays.toString(c) );
//将所有的字母改为大写
String str = new String(c, 0, count);
str = str.toUpperCase();
//写入文件
//writer.write(c,0,count);
writer.write(str);
}
//注意一.....................强制刷新暂存区
writer.flush();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally{
//注意二.....................释放资源、关闭资源
//使用顺序:reader -> writer
//关闭顺序:writer -> reader
try {
if(writer != null)
{
writer.close();
}
} catch (IOException e) {
e.printStackTrace();
}
try {
if(reader != null)
{
reader.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
分割线
相关信息
以上就是我关于 Java文件与流-文件与流-FileReader与FileWriter字符输出流 知识点的整理与总结的全部内容,希望对你有帮助。。。。。。。
扩展知识
流的分类:
根据流的方向分:输入流、输出流
根据流的单位分:字节流、字符流
根据流的功能分:节点流、处理流
字节流输入流:XXXXInputStream
字节流输出流:XXXXOutputStream
字符流输入流:XXXXReader
字符流输出流:XXXXWriter
字节流:一个字节一个字节读取数据(英文、数字各占1个字节,中文GBK编码下占2个字节)
适用于复制文件(文本文档、图片、音频、视频等等):
FileInputStream:以字节为单位读取数据 ---字节输入流
FileOutputStream:以字节为单位写出数据 ---字节输出流
访问字节数组:
ByteArrayInputStream:以字节为单位读取数据 ---字节输入流
字符流:一个字符一个字符读取数据
适用于修改文件内容:
FileReader:以字符为单位读取数据 ---字符输入流
FileWriter:以字符为单位写出数据 ---字符输出流
节点流:能够直接访问数据源文件的流
FileInputStream input = new FileInputStream("file/file.txt");
FileOutputStream output = new FileOutputStream("file/file_bak.txt",true);
FileReader reader = new FileReader("file/file.txt");
FileWriter writer = new FileWriter("file/file_bak.txt");
处理流:不能够直接访问数据源文件的流,每种流具有特定的功能
BufferedReader reader = new BufferedReader(new FileReader("file/file.txt"));
可以一行一行读取数据,特有的方法: readLine()
BufferedWriter writer = new BufferedWriter(new FileWriter("file/file_bak.txt"));
可以换行输出数据,特有的方法: newLine()
分割线
Powered by Waline v2.15.4