Java 中的FileReader和FileWriter源码分析_动力节点Java学院整理
发布时间 - 2026-01-11 01:09:36 点击率:次FileReader和FileWriter源码分析

1. FileReader 源码(基于jdk1.7.40)
package java.io;
public class FileReader extends InputStreamReader {
public FileReader(String fileName) throws FileNotFoundException {
super(new FileInputStream(fil java io系列21之 InputStreamReader和OutputStreamWritereName));
}
public FileReader(File file) throws FileNotFoundException {
super(new FileInputStream(file));
}
public FileReader(FileDescriptor fd) {
super(new FileInputStream(fd));
}
}
从中,我们可以看出FileReader是基于InputStreamReader实现的。
2. FileWriter 源码(基于jdk1.7.40)
package java.io;
public class FileWriter extends OutputStreamWriter {
public FileWriter(String fileName) throws IOException {
super(new FileOutputStream(fileName));
}
public FileWriter(String fileName, boolean append) throws IOException {
super(new FileOutputStream(fileName, append));
}
public FileWriter(File file) throws IOException {
super(new FileOutputStream(file));
}
public FileWriter(File file, boolean append) throws IOException {
super(new FileOutputStream(file, append));
}
public FileWriter(FileDescriptor fd) {
super(new FileOutputStream(fd));
}
}
从中,我们可以看出FileWriter是基于OutputStreamWriter实现的。
示例程序
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileWriter;;
import java.io.FileReader;
import java.io.IOException;
/**
* FileReader 和 FileWriter 测试程序
*
*
*/
public class FileReaderWriterTest {
private static final String FileName = "file.txt";
private static final String CharsetName = "utf-8";
public static void main(String[] args) {
testWrite();
testRead();
}
/**
* OutputStreamWriter 演示函数
*
*/
private static void testWrite() {
try {
// 创建文件“file.txt”对应File对象
File file = new File(FileName);
// 创建FileOutputStream对应FileWriter:将字节流转换为字符流,即写入out的数据会自动由字节转换为字符。
FileWriter out = new FileWriter(file);
// 写入10个汉字
out1.write("字节流转为字符流示例");
// 向“文件中”写入"0123456789"+换行符
out1.write("0123456789\n");
out1.close();
} catch(IOException e) {
e.printStackTrace();
}
}
/**
* InputStreamReader 演示程序
*/
private static void testRead() {
try {
// 方法1:新建FileInputStream对象
// 新建文件“file.txt”对应File对象
File file = new File(FileName);
FileReader in1 = new FileReader(file);
// 测试read(),从中读取一个字符
char c1 = (char)in1.read();
System.out.println("c1="+c1);
// 测试skip(long byteCount),跳过4个字符
in1.skip(6);
// 测试read(char[] cbuf, int off, int len)
char[] buf = new char[10];
in1.read(buf, 0, buf.length);
System.out.println("buf="+(new String(buf)));
in.close();
} catch(IOException e) {
e.printStackTrace();
}
}
}
运行结果:
c1=字
buf=流示例0123456
以上所述是小编给大家介绍的Java 中的FileReader和FileWriter源码分析,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
# java中的
# filereader
# 和filewriter
# filewriter
# java FileWriter 追加文件及文件改名方式
# Java中BufferedReader与BufferedWriter类的使用示例
# 基于java Files类和Paths类的用法(详解)
# Java中FileWriter类的常用方法说明
# 可以看出
# 小编
# 在此
# 是基于
# 给大家
# 转换为
# 所述
# 给我留言
# 跳过
# 感谢大家
# 疑问请
# 有任何
# 换行符
# super
# fil
# FileInputStream
# FileNotFoundException
# fileName
# throws
# String
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
高性能网站服务器部署指南:稳定运行与安全配置优化方案
音乐网站服务器如何优化API响应速度?
Laravel如何实现多对多模型关联?(Eloquent教程)
iOS中将个别页面强制横屏其他页面竖屏
Laravel如何安装Breeze扩展包_Laravel用户注册登录功能快速实现【流程】
如何快速搭建高效服务器建站系统?
如何在Ubuntu系统下快速搭建WordPress个人网站?
宙斯浏览器怎么屏蔽图片浏览 节省手机流量使用设置方法
Laravel如何使用Eloquent ORM进行数据库操作?(CRUD示例)
Windows10如何删除恢复分区_Win10 Diskpart命令强制删除分区
Laravel如何自定义分页视图?(Pagination示例)
Laravel如何生成PDF或Excel文件_Laravel文档导出工具与使用教程
Mybatis 中的insertOrUpdate操作
如何选择可靠的免备案建站服务器?
音响网站制作视频教程,隆霸音响官方网站?
高防服务器租用首荐平台,企业级优惠套餐快速部署
详解MySQL数据库的安装与密码配置
Laravel事件监听器怎么写_Laravel Event和Listener使用教程
mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?
googleplay官方入口在哪里_Google Play官方商店快速入口指南
如何打造高效商业网站?建站目的决定转化率
Bootstrap整体框架之CSS12栅格系统
EditPlus中的正则表达式 实战(2)
如何快速配置高效服务器建站软件?
Laravel Admin后台管理框架推荐_Laravel快速开发后台工具
微博html5版本怎么弄发超话_超话进入入口及发帖格式要求【教程】
如何用AI一键生成爆款短视频文案?小红书AI文案写作指令【教程】
微信小程序 input输入框控件详解及实例(多种示例)
北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?
为什么要用作用域操作符_php中访问类常量与静态属性的优势【解答】
Claude怎样写结构化提示词_Claude结构化提示词写法【教程】
如何实现建站之星域名转发设置?
Laravel如何使用Facades(门面)及其工作原理_Laravel门面模式与底层机制
BootStrap整体框架之基础布局组件
Laravel如何实现图片防盗链功能_Laravel中间件验证Referer来源请求【方案】
浅谈redis在项目中的应用
JavaScript实现Fly Bird小游戏
laravel服务容器和依赖注入怎么理解_laravel服务容器与依赖注入解析
Laravel如何使用Laravel Vite编译前端_Laravel10以上版本前端静态资源管理【教程】
ChatGPT怎么生成Excel公式_ChatGPT公式生成方法【指南】
香港服务器网站卡顿?如何解决网络延迟与负载问题?
Swift中swift中的switch 语句
Laravel怎么创建自己的包(Package)_Laravel扩展包开发入门到发布
三星、SK海力士获美批准:可向中国出口芯片制造设备
Win11搜索不到蓝牙耳机怎么办 Win11蓝牙驱动更新修复【详解】
Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案
Java解压缩zip - 解压缩多个文件或文件夹实例
Edge浏览器怎么启用睡眠标签页_节省电脑内存占用优化技巧
Laravel的路由模型绑定怎么用_Laravel Route Model Binding简化控制器逻辑
Laravel如何实现密码重置功能_Laravel密码找回与重置流程

