黑马程序员——Java学习总结:转换流和流的操作总结

本文介绍Java中如何实现从键盘录入数据,并将其保存到文件中。涉及InputStream、InputStreamReader及BufferedReader等类的使用,同时讲解了字符流与字节流的转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如何实现读取键盘录入?

System.out:对应的是标准输出设备,控制台 
System.in:对应的标准输入设备,键盘

<code class="hljs avrasm has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;">代码:
InputStream <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">in</span>=System<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.in</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">;</span>
  int by=<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">in</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.read</span>()<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">;</span>
  System<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.out</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.println</span>(by)<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">;</span>
结束录入 

  <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">in</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.close</span>()<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">;</span></code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li></ul>

转换流

读取转换流:InputStreamReader 
写入转换流:OutputStreamReader

读取转换流:InputStreamReader 字节流通向字符流的桥梁

步骤 
1.获取键盘录入对象 
Inputstream in=System.in 
2.将字节流对象转换成字符流对象,使用转换流InputStreamReader 
InputStreamReader isr=new InputStreamReader(in); 
3.提高效率使用字符流缓冲区 BufferedReader进行读取 
BufferedReader bf=new BufferedReader(is); 
String line=null; 
while((line=bf.readLine())!=null) 

if(“over”.equals(line)) 
break; 
sop(line); 

bufr.close;

写入转换流:OutputStreamReader 字符流通向字节流的桥梁

步骤 
1.获取输出对象 
Outputstream out=System.out 
2.将字符流对象转换成字节流对象,使用转换流OutputstreamWriter 
OutputstreamWriter osw=new OutputstreamWriter(out); 
3.提高效率使用字符流缓冲区 BufferedWriter进行写入 
BufferedWriter bw=new BufferedWriter(osw); 
String line=null; 
while((line=bf.readLine())!=null) 

if(“over”.equals(line)) 
break; 
bw.write(line); 
bufw.newLine(); 

bufr.close;


操作流规律总结:

流操作基本规律: 
两个明确: 
1.明确源和目的

源:输入流。InputStream字节流 Reader 字符流 
目的:输出流 OutPutStream 字节流 Writer 字符流

2.操作的数据是否是纯文本

是 就是字符流 如果设备是键盘 就将字节流转换为字符流 
不是 就是 字节流

3.当体系明确后,在明确要是用那个具体的对象 
通过设备来区分 
源设备 内存 硬盘 键盘 
目的设备 内存 硬盘 控制台

4.是否需要提高效率 
是 BufferedReader BufferedInputStream 
否 BuffreredWriter BufferedOutputStream

案例分析 :

1.将一个文本文件中的数据存储到另一个文件中,复制文件

源: InputStream字节流 Reader 字符流 
是否是纯文本 是 Reader 
设备: 文件 操作文件的对象 就是FileReader 
是否需要高效 
是 BufferedReader 
FileReader fr=new FileReader(“a.txt”); 
BufferedReader bufr=new BufferedReader(fr);

目的 OutPutStream 字节流 Writer 字符流 
是否是纯文本 :是 Writer 
设备: 文件 写入文件的对象 就是 FileWriter 
是否需要高效 是 BufferedWriter

FileWriter fw=new FileWriter(“b.txt”); 
BufferedWriter bufw=new BufferedWriter(fw);

2.将一个图片文件数据存储到另一个文件中,复制文件。

分析 
源: 
是否是纯文本 : 不是 InputStream 
设备 文件 就是 FileInputStream 
是否高效 是 
BufferedInputStream

FileInputStream isr=new FileInputStream(“a.jpg”); 
BufferedInputStream bufis=new BufferedInputStream(isr); 
目的 
是否纯文本 :不是 OutPutStream 
设备:文件 FileOutPutStream 
是否高效 是 
BufferedOutputStream 
FileOutPutStream osw=new FileOutPutStream(“b.jpg”); 
BufferedOutputStream bufos=new BufferedOutputStream(osw);

3.需求将键盘录入的数据保存到一个文件中 。

源:键盘 字节流 
是否纯文本 Reader 
设备 :键盘 ,对应的对象时 System.in 对应的是字节流 ,为了操作方便 转成字符流 
既然明确了Reader 就将System.in 转换成字符流 InputStreamReader

InputStreamReader isr=new InputStreamReader(System.in);

需要高效吗 ?

BufferedReader bufr=new BufferedReader(isr);

目的: 文件 
是否纯文本 是 Writer 
设备:文件 FileWriter 
需要高效吗? 
是 BufferedWriter

4.扩展 :想要吧录入的数据按照指定的编码表(utf-8)将数据存到文件中 
目的:OutPutStream 字节流 Writer 字符流 
是否是存文本:是 Writer 
设备 :文件 fileWriter 
默认编码表是 gbk 
编码标只有转换流可以指定。所以要使用的对象是写入转换流 OutputStreamWriter 
转换流需要接受一个自己输出流,操作字节输出流的是FileOutputStream 
OutputStreamWriter osw=new OutputStreamWriter(new FileOutputStream(“b.txt”),”utf-8”); 
BufferedWriter bufw=new BufferedWriter (osw);

资源下载链接为: https://pan.quark.cn/s/22ca96b7bd39 在当今的软件开发领域,自动化构建与发布是提升开发效率项目质量的关键环节。Jenkins Pipeline作为一种强大的自动化工具,能够有效助力Java项目的快速构建、测试及部署。本文将详细介绍如何利用Jenkins Pipeline实现Java项目的自动化构建与发布。 Jenkins Pipeline简介 Jenkins Pipeline是运行在Jenkins上的一套工作框架,它将原本分散在单个或多个节点上独立运行的任务串联起来,实现复杂程的编排与可视化。它是Jenkins 2.X的核心特性之一,推动了Jenkins从持续集成(CI)向持续交付(CD)及DevOps的转变。 创建Pipeline项目 要使用Jenkins Pipeline自动化构建发布Java项目,首先需要创建Pipeline项目。具体步骤如下: 登录Jenkins,点击“新建项”,选择“Pipeline”。 输入项目名称描述,点击“确定”。 在Pipeline脚本中定义项目字典、发版脚本预发布脚本。 编写Pipeline脚本 Pipeline脚本是Jenkins Pipeline的核心,用于定义自动化构建发布的程。以下是一个简单的Pipeline脚本示例: 在上述脚本中,定义了四个阶段:Checkout、Build、Push packageDeploy/Rollback。每个阶段都可以根据实际需求进行配置调整。 通过Jenkins Pipeline自动化构建发布Java项目,可以显著提升开发效率项目质量。借助Pipeline,我们能够轻松实现自动化构建、测试部署,从而提高项目的整体质量可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值