java file转输入流_Java转换流
前面提到IO流可分为字节流和字符流,有时字节流和字符流之间也需要进行转换。在JDK中提供了两个类可以将字节流转换为字符流,它们分别是InputStreamReader和OutputStreamWriter。
转换流也是一种包装流,其中OutputStreamWriter是Writer的子类,它可以将一个字节输出流包装成字符输出流,方便直接写入字符,而InputStreamReader是Reader的子类,它可以将一个字节输入流包装成字符输入流,方便直接读取字符。通过转换流进行数据读写的过程如图所示。
接下来通过一个案例来学习如何将字节流转为字符流,为了提高读写效率,可以通过BufferedReader和BufferedWriter对转换流进行包装,具体代码如例所示。import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class IOTest {
public static void main(String[] args) {
try {
FileInputStream in = new FileInputStream("D:/example.txt"); // 创建字节输入流
InputStreamReader isr = new InputStreamReader(in);
// 将字节流输入转换成字符输入流
BufferedReader br = new BufferedReader(isr); // 对字符流对象进行包装
FileOutputStream out = new FileOutputStream("D:/example.txt");
// 将字节输出流转换成字符输出流
OutputStreamWriter osw = new OutputStreamWriter(out);
BufferedWriter bw = new BufferedWriter(osw); // 对字符输出流对象进行包装
String line;
while ((line = br.readLine()) != null) { // 判断是否读到文件末尾
bw.write(line); // 输出读取到的文件
}
br.close();
bw.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
例实现了字节流和字符流之间的转换,将字节流转换为字符流,从而实现直接对字符的读写。需要注意的是,在使用转换流时,只能针对操作文本文件的字节流进行转换,如果字节流操作的是一张图片,此时转换为字符流就会造成数据丢失。
java file转输入流_Java转换流相关推荐
- java切割输入流_Java分割流,对象流,参与序列化,分割读取文件,对象输入或输出流等【诗书画唱】...
自己写的题目:用分割流把一个Java文件分割读取,打印出每次读取的内容,要求每次读取打印500个字节. package fenGeLiu; import java.io.*; public class ...
- java切割输入流_java IO流之文件切割两例(含Properties 用法)
package cn.itcast.io.p1.splitfile; import java.io.File; import java.io.FileInputStream; import java. ...
- Java学习总结:43(转换流)
转换流 字节流和字符流的转换可以通过InputStreamReader.OutputStreamWriter两个类转换,下面是这两个类的继承结构和构造方法 名称 定义构造 构造方法 InputStre ...
- 基于java洗浴中心管理系统_Java IO流详解
流的概念和作用 学习Java IO,不得不提到的就是JavaIO流. 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输 ...
- java io流填空题,java面试题选择题_java,Io流面试题和选择题
Java对象的序列化指将一个java对象写入OI流中,与此对应的是,对象的反序列化则从IO流中恢复该java对象.下面就由小编为大家介绍一下java Io流面试题和选择题的文章,欢迎阅读. java ...
- java file rename 失败_java File renameTo 踩坑---windows vs linux
Java File renameTo 方法 Windows Linux 下的差异: window : 1 在关闭源文件之前,进行重命名操作,返回 false,重命名失败: 2 目标文件存在时,返回fa ...
- java字符的输入流_Java:字节流和字符流(输入流和输出流)
InputStream是抽象基类,所以它不可以创建对象,但它可以用来"接口化编程",因为大部分子类的函数基类都有定义,所以利用基类来调用函数. FileInputStream是用来 ...
- java io框架图_Java IO流体系继承结构图解析
Java IO体系结构看似庞大复杂,其实有规律可循,要弄清楚其结构,需要明白两点: 1. 其对称性质:InputStream 与 OutputStream, Reader 与 Writer,他们分别是 ...
- java file 网络文件_Java 网络文件传输
读者范围: 本文是一篇简短入门文章.本文假设读者对Java的IO系统和Java的网络系统有所了解. 正文: 关于文件传输的问题,实际也是一种IO读写的基本问题.对于网络而言也是一种IO读写问题.因此所 ...
最新文章
- alert()的功能_功能强大的Flutter 视频播放插件
- cmi编码实验_cmi编译码实验报告.docx
- IntelliJ IDEA 配置 JDK
- 文件操作(上传,下载,限制)
- 数据库热备份 Xtrabackup安装及使用
- python判断密码是否合法性_菜鸟使用python实现正则检测密码合法性
- MySQL命令行格式化输出
- Mac系统如何修复MAC硬盘权限
- 李洪强iOS经典面试题30-一个区分度很大的面试题
- template.js 模板引擎
- python : autopep8
- 耐高温轴承1000度_1000度耐高温轴承的类型选择--SIAIF耐高温轴承
- php 公交查询,php公交车线路查询系统
- 在东钿第一次早会分享励志小故事。
- python输出去空格_python不空格
- 全球与中国无线视频门铃对讲机市场深度研究分析报告
- matlab 二元微分方程组,求助,matlab求解二元二阶的常微分方程组
- 开源全文搜索(搜索引擎)
- mac系统下word和excel设置文件打开密码,输入密码才能打开文件
- 编写程序 , 求 e 的值