相关文章:
  1. 《IO流 (一) ----- 基本概念和File类》
  2. 《IO流 (二) ----- 文件流》
  3. 《IO流 (三) ----- 字符流和字符缓冲流》
  4. 《IO流 (四) ----- 转换流和标准字节输出流》
  5. 《IO流 (五) ----- 对象数据的序列化和反序列化》

本篇涉及内容


  • 转换流

  • 标准字节输出流

转换流(字节转字符)


  • InputStreamReader
  • OutputStreamWriter
  1. 应用场景:构造BufferedReader/BufferedWriter时,其构造方法中只能传入字符流(Reader/Writer),我们现在只有一个字节流FileInputStream/FileOutputStream,则需要通过转换流先把字节流转换为字符流。

  2. 代码实现:

         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流 (四) ----- 转换流和标准字节输出流相关推荐

  1. Java笔记整理六(File类,递归,字节流IO,字符流IO,流中的异常处理,属性集Properties,缓冲流,转换流,序列化,打印流)

    1.File类 java.io.File 类是文件和目录路径名的抽象表示,主要用于文件和目录的创建.查找和删除等操作. 文件和目录路径名的抽象表示 java把文件和文件夹封装位为一个File类,我们可 ...

  2. Java基础19:IO流—缓冲流、转换流、序列化、打印流、压缩流和解压流

    IO流中的一些其他流:缓冲流.转换流.序列化.打印流.压缩流和解压流 1. 缓冲流 IO流除了一些基本的流,还有在此基础上发展出来的一些更强大的流.比如能够高效读写的缓冲流,能够转换编码的转换流,能够 ...

  3. JAVA基础-08.File类与IO流-21.【缓冲流、转换流、序列化流、打印流】

    01_缓冲流的原理 02_转换流的原理 03_序列化和反序列化的概述 04_序列号冲突异常的原理和解决方案 day10[缓冲流.转换流.序列化流] 主要内容 缓冲流 转换流 序列化流 打印流 教学目标 ...

  4. Java IO流之转换流

    一.转换流 1.在IO包中,实际上就是分为字节流和字符流,但是除了这两个流之外,还存在了一组字节流-字符流的转换流 2.转换流用于在字节流和字符流之间转换 3.转换流本身是字符流 二.两种转换流 Ou ...

  5. JavaSE进阶26 - IO流概述、字节流、字符流、转换流、缓冲流

    目录 IO概述 FileInputStream的使用 FileOutputStream使用 文件复制 文件的复制原理 代码 FileReader FileWriter 复制普通文本文件 Buffere ...

  6. 黑马程序员_JAVA之IO流的(转换流,数据输入输出流等)

    ------- android培训.java培训.期待与您交流!---------- IO流: 笔记内容:转换流,字节输入输出流,数据输入输出流,内存操作流,随机访问流 打印流,对象序列化流,Prop ...

  7. 25.java中IO流的应用---缓冲流、转换流以及对象流过程(附讲解和练习)

    处理流之一:缓冲流  为了提高数据读写的速度, Java API提供了带缓冲功能的流类,在使用这些流类时,会创建一个内部缓冲区数组,缺省使用8192个字节(8Kb)的缓冲区.  缓冲流要" ...

  8. 菜鸟学习笔记:Java提升篇5(IO流1——IO流的概念、字节流、字符流、缓冲流、转换流)

    菜鸟学习笔记:Java IO流1--IO流的概念.字节流.字符流.缓冲流.转换流 IO流的原理及概念 节点流 字节流 文件读取 文件写出 文件拷贝 文件夹拷贝 字符流 文件读取 文件写出 处理流 缓冲 ...

  9. java 文件转换成流_java -IO流_转换流

    转换流 在学习字符流(FileReader.FileWriter)的时候,其中说如果需要指定编码和缓冲区大小时,可以在字节流的基础上,构造一个InputStreamReader或者OutputStre ...

最新文章

  1. [BZOJ2947]促销(Splay)
  2. 睡醒了,有精神了,简单讲讲这几天的故事了
  3. python 轨迹识别
  4. 关中断解决任务间资源共享问题
  5. .NET C# 发送邮件内容嵌入图片
  6. Vitamio中文API文档(1)—— MediaStore
  7. PAT——1018. 锤子剪刀布
  8. 好看的个人主页,个人引导页
  9. Linux 生产者与消费者模型C++实现
  10. 双指针--无重复最长子串
  11. 计算机机房安全设计规范,弱电机房建设规范要求
  12. 汽车维修企业管理【1】
  13. 算术编码数据压缩Matlab报告,用matlab实现算术编码
  14. HMC——Hamiltonian Monte Carlo笔记
  15. TypeError: AMap.MouseTool is not a constructor TypeError: AMap.MouseTool is not a constructor
  16. ftp服务器的端口20和21的具体作用,FTP协议中21端口和20端口的详解
  17. 手把手教大家在自己的Windows电脑上搭建一个视频电话系统(基于开源项目FreeSwitch+Linphone)
  18. Python爬虫-中华英才网登陆JS加密登陆
  19. 山外多功能调试助手用作虚拟服务器
  20. 经济学模型1-循环流向图

热门文章

  1. JS中如何判断null
  2. LAMP默认安装路径
  3. 《设计模式详解》结构型模式 - 桥接模式
  4. 信息系统项目管理08——项目质量管理
  5. powershell自动化操作AD域、Exchange邮箱系列(1)——powershell 简介
  6. 终极解决方案UnicodeEncodeError: 'ascii' codec can't encode character u'\uff08' in position 13: ordinal not
  7. 防灾科技学院计算机好就业吗,防灾科技学院2015年毕业生就业质量报告.pdf
  8. java 惊群效应,eureka的惊群效应
  9. pytorch学习笔记(二十九):简洁实现循环神经网络
  10. python数据结构之元组(tuple)——超详细