IO流 (四) ----- 转换流和标准字节输出流
相关文章:
- 《IO流 (一) ----- 基本概念和File类》
- 《IO流 (二) ----- 文件流》
- 《IO流 (三) ----- 字符流和字符缓冲流》
- 《IO流 (四) ----- 转换流和标准字节输出流》
- 《IO流 (五) ----- 对象数据的序列化和反序列化》
本篇涉及内容
转换流
标准字节输出流
转换流(字节转字符)
- InputStreamReader
- OutputStreamWriter
应用场景:构造BufferedReader/BufferedWriter时,其构造方法中只能传入字符流(Reader/Writer),我们现在只有一个字节流FileInputStream/FileOutputStream,则需要通过转换流先把字节流转换为字符流。
代码实现:
BufferedReader br = null;BufferedWriter bw = null;try {FileInputStream fis = new FileInputStream("Test/originTextFile.txt");FileOutputStream fos = new FileOutputStream("Test/targetTextFile.txt");br = new BufferedReader(new InputStreamReader(fis));bw = new BufferedWriter(new OutputStreamWriter(fos));} catch (FileNotFoundException e) {e.printStackTrace();} finally {if (br != null) {try {//只用关闭最外层流br.close();} catch (IOException e) {e.printStackTrace();}}if (bw != null) {try {//只关闭最外层流bw.close();} catch (IOException e) {e.printStackTrace();}}}
标准字节输出流PrintStream
我们先来看一下System.out.println()
这段代码
可以看见System.out
返回了一个PrintStream对象,因此我们可以推断println()
这个方法是PrintStream类中的方法,下面我们来创建一个PrintStream对象试试。
PrintStream的构造方法有多种实现,这里我们通过文件字节输出流来构造PrintStream对象,并且调用println()
方法输出一段文字到文件中。
我们知道System.out.println()
这段代码的作用的向控制台输出,那么我们可以改变它的输出方向吗?当然可以!通过System.setOut()
方法实现。
需要传入一个PrintStream对象进去。
现在打印出来的字符串不再出现在控制台中,而是出现在了log.txt文件中。
下面我们通过上述方法来实现一个Logger工具类。
public class Logger {public static void log(String msg) {try {//指向一个日志文件PrintStream ps = new PrintStream(new FileOutputStream("Test/log.txt",true));//改变输出方向System.setOut(ps);//日期当前时间Date nowTime = new Date();SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");String strTime = sdf.format(nowTime);System.out.println(strTime + ": " + msg);} catch (FileNotFoundException e) {e.printStackTrace();}}
}
IO流 (四) ----- 转换流和标准字节输出流相关推荐
- Java笔记整理六(File类,递归,字节流IO,字符流IO,流中的异常处理,属性集Properties,缓冲流,转换流,序列化,打印流)
1.File类 java.io.File 类是文件和目录路径名的抽象表示,主要用于文件和目录的创建.查找和删除等操作. 文件和目录路径名的抽象表示 java把文件和文件夹封装位为一个File类,我们可 ...
- Java基础19:IO流—缓冲流、转换流、序列化、打印流、压缩流和解压流
IO流中的一些其他流:缓冲流.转换流.序列化.打印流.压缩流和解压流 1. 缓冲流 IO流除了一些基本的流,还有在此基础上发展出来的一些更强大的流.比如能够高效读写的缓冲流,能够转换编码的转换流,能够 ...
- JAVA基础-08.File类与IO流-21.【缓冲流、转换流、序列化流、打印流】
01_缓冲流的原理 02_转换流的原理 03_序列化和反序列化的概述 04_序列号冲突异常的原理和解决方案 day10[缓冲流.转换流.序列化流] 主要内容 缓冲流 转换流 序列化流 打印流 教学目标 ...
- Java IO流之转换流
一.转换流 1.在IO包中,实际上就是分为字节流和字符流,但是除了这两个流之外,还存在了一组字节流-字符流的转换流 2.转换流用于在字节流和字符流之间转换 3.转换流本身是字符流 二.两种转换流 Ou ...
- JavaSE进阶26 - IO流概述、字节流、字符流、转换流、缓冲流
目录 IO概述 FileInputStream的使用 FileOutputStream使用 文件复制 文件的复制原理 代码 FileReader FileWriter 复制普通文本文件 Buffere ...
- 黑马程序员_JAVA之IO流的(转换流,数据输入输出流等)
------- android培训.java培训.期待与您交流!---------- IO流: 笔记内容:转换流,字节输入输出流,数据输入输出流,内存操作流,随机访问流 打印流,对象序列化流,Prop ...
- 25.java中IO流的应用---缓冲流、转换流以及对象流过程(附讲解和练习)
处理流之一:缓冲流 为了提高数据读写的速度, Java API提供了带缓冲功能的流类,在使用这些流类时,会创建一个内部缓冲区数组,缺省使用8192个字节(8Kb)的缓冲区. 缓冲流要" ...
- 菜鸟学习笔记:Java提升篇5(IO流1——IO流的概念、字节流、字符流、缓冲流、转换流)
菜鸟学习笔记:Java IO流1--IO流的概念.字节流.字符流.缓冲流.转换流 IO流的原理及概念 节点流 字节流 文件读取 文件写出 文件拷贝 文件夹拷贝 字符流 文件读取 文件写出 处理流 缓冲 ...
- java 文件转换成流_java -IO流_转换流
转换流 在学习字符流(FileReader.FileWriter)的时候,其中说如果需要指定编码和缓冲区大小时,可以在字节流的基础上,构造一个InputStreamReader或者OutputStre ...
最新文章
- [BZOJ2947]促销(Splay)
- 睡醒了,有精神了,简单讲讲这几天的故事了
- python 轨迹识别
- 关中断解决任务间资源共享问题
- .NET C# 发送邮件内容嵌入图片
- Vitamio中文API文档(1)—— MediaStore
- PAT——1018. 锤子剪刀布
- 好看的个人主页,个人引导页
- Linux 生产者与消费者模型C++实现
- 双指针--无重复最长子串
- 计算机机房安全设计规范,弱电机房建设规范要求
- 汽车维修企业管理【1】
- 算术编码数据压缩Matlab报告,用matlab实现算术编码
- HMC——Hamiltonian Monte Carlo笔记
- TypeError: AMap.MouseTool is not a constructor TypeError: AMap.MouseTool is not a constructor
- ftp服务器的端口20和21的具体作用,FTP协议中21端口和20端口的详解
- 手把手教大家在自己的Windows电脑上搭建一个视频电话系统(基于开源项目FreeSwitch+Linphone)
- Python爬虫-中华英才网登陆JS加密登陆
- 山外多功能调试助手用作虚拟服务器
- 经济学模型1-循环流向图
热门文章
- JS中如何判断null
- LAMP默认安装路径
- 《设计模式详解》结构型模式 - 桥接模式
- 信息系统项目管理08——项目质量管理
- powershell自动化操作AD域、Exchange邮箱系列(1)——powershell 简介
- 终极解决方案UnicodeEncodeError: 'ascii' codec can't encode character u'\uff08' in position 13: ordinal not
- 防灾科技学院计算机好就业吗,防灾科技学院2015年毕业生就业质量报告.pdf
- java 惊群效应,eureka的惊群效应
- pytorch学习笔记(二十九):简洁实现循环神经网络
- python数据结构之元组(tuple)——超详细