11.0、Java_IO流 - 转换流、PrintWriter字符输出流

news/2024/11/25 12:32:30/

11.0、Java_IO流 - 转换流、PrintWriter字符输出流

        InputStreamReader / OutputStreamWriter 用来实现将字节流转换成字符流;

比如,如下场景:

        System.in 是字节流对象( 在 System 类中有一个静态的 static in 对象,所以我们用 System.in 获取的其实就是一个 InputStream 输入流的对象; ),代表键盘的输入,如果我们按行接收用户的输入时,就必须用到缓冲字符流 BufferedReader 特有的方法 readLine() ,但是经过观察会发现在创建 BufferedReader 的构造方法的参数必须是一个 Reader 对象,这时候我们的转换流 InputSteamReader 就派上用场了;

        而 System.out 也是字节流对象( 在 System 类中有一个静态的 static out 对象,所以我们用 System.out 获取的其实就是一个 OuputStream 输出流的对象; ),代表输出到显示器,按行读取用户的输入后,并且要将读取的一行字符串直接显示到控制台,就需要用到字符流 write ( String str ) 方法,所以我们要使用 OutputStreamWriter 将字节流转化为字符流;

 

代码示例,如下所示 ->

public class Demo8 {public static void main(String[] args) throws IOException {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));while(true) {bw.write("请输入");String input = br.readLine();if("exit".equals(input)) {break;}bw.write("您输入的是"+input);bw.newLine();bw.flush();}}
}

 

PrintWriter:

        PrintWriter 是一个字符输出流 ,而且他是一个节点流,可以直接使用;PrintWriter 流中的 println();方法自带 flush();刷新方法以及输出一行后自动换行的功能;

实例代码,如下所示 ->

public class Demo8 {public static void main(String[] args) throws IOException {BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("D:/text1.txt")));PrintWriter pw = new PrintWriter("D:/text2.txt");String tmp = "";int i = 1;while((tmp = br.readLine()) != null) {pw.println(i+","+tmp);i++;}}
}

http://www.ppmy.cn/news/857914.html

相关文章

ARM处理器内核列表

来源:维基百科 家族 架构 内核 特色 快取 (I/D)/MMU 常规 MIPS 于 MHz 应用 ARM1ARMv1ARM1 无 ARM2ARMv2ARM2Architecture 2 加入了MUL(乘法)指令无4 MIPS 8MHzAcorn Archimedes,ChessmachineARMv2aARM250Integrated MEMC (MMU…

STM32入门100步 第1期 是时候学ARM了!

文 / 杜洋 洋桃电子 一,为啥学? 标题的意思是“现在是学习ARM最好的时机”。什么是ARM?(读英文单词arm,不要读字母A-R-M)简单来说就一种性能出众的32位处理器的内核架构。1991 年,一家叫ARM的公司在英国成立了,它 们设计出了一种高性能、低功耗的处理器 的设计方案,…

ARM家族

一、ARM发展史 ARM的前身为艾康电脑(Acorn),于1978年,于英国剑桥创立。1985年开发出全球第一款商用RISC处理器,即ARM1。1990年艾康电脑财务危机,受苹果和VLSI的投资,分割出独立子公司Advanced …

SIMD补充 指令集架构类型 指令集介绍

文章目录 SIMD指令集架构类型CISC的产生、发展和现状RISC的产生、发展和现状IA-64(EPIC)产生、发展和现状RISC与 IA-64(EPIC)相比 指令集介绍一、X86二、X64三、ARM四、SSE指令集五、SSE2指令集六、SSE3指令集七、SSE4指令集八、3D Now!扩展指令集九、E…

明基西门子申请破产

前天在家看新闻连播,竟然看到公司老大KY宣布申请明西破产??前几天公司拆分的时候听了麦克的话,感觉公司还是不错的,很快就应该扭亏为盈了,想不到短短的几天就这样,而且刚拆分公司就申请破产&…

简约科技美感,明基西门子黑色魔匣概念曝光

简约科技美感,明基西门子黑色魔匣概念曝光 明基西门子在不久前通过幻灯片的展示方式对外流出了“Black Box”概念手机的图片,虽然这个消息没有得到相关人士的确认,但这至少说明了喜爱明基和西门子的人们对于这样一款“来自未来”的手机充满了…

springboot生鲜交易系统

生鲜交易管理方面的任务繁琐,以至于交易市场每年都在生鲜交易管理这方面投入较多的精力却效果甚微,生鲜交易系统的目标就是为了能够缓解生鲜交易管理工作方面面临的压力,让生鲜交易管理方面的工作变得更加高效准确。 本项目在开发和设计过程中涉及到原理和技术有: B/S、java技…

【Leetcode】34.在排序数组中查找元素的第一个和最后一个位置

一、题目 1、题目描述 给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。 如果数组中不存在目标值 target,返回 [-1, -1]。 你必须设计并实现时间复杂度为 O(log n) 的算法解决此问题。 示例1: 输入…