【Java】文件I/O-字节流转换成字符流

上文中我们讲了Reader,Writer,InputStream,OutputStream这四种流的基本用法🔢

【Java】文件I/O-文件内容操作-输入输出流-Reader/Writer/InputStream/OutputStream四种流

其中InputStream和OutputStream两个类涉及到的都是byte(字节),操作并不方便,下面我们就讲一下怎样把字节流转换成字符流📑

1、输入 

InputStream输入读取文本数据时,读取的是二进制字节数据,为了转化成文字,我们利用Scanner类

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.Scanner;public class demo7 {public static void main(String[] args) {try(InputStream inputStream = new FileInputStream("/Users/liuwenwen/Desktop/test.txt")) {Scanner scanner = new Scanner(inputStream);String s = scanner.next();System.out.println(s);} catch (FileNotFoundException e) {throw new RuntimeException(e);} catch (IOException e) {throw new RuntimeException(e);}}
}

Scanner类中我们常填的System.in参数本身也是一个InputStream,因此我们在这里只需要直接把inputStream当做参数传入。这样操作后,我们就从文本而不是键盘读取数据了。

读取到的数据直接转换成字符流

2、输出 

 OutputStream则是采用PrintWriter类来进行转换的

import java.io.*;public class demo9 {public static void main(String[] args) {try (OutputStream outputStream = new FileOutputStream("/Users/liuwenwen/Desktop/test.txt",true)){PrintWriter writer = new PrintWriter(outputStream);writer.println("借问桃将李,相乱欲何如。");writer.flush();} catch (FileNotFoundException e) {throw new RuntimeException(e);} catch (IOException e) {throw new RuntimeException(e);}}
}

写入结果

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/185149.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

rabbitMQ对消息不可达处理-备份交换机/备份队列

生产者发送消息,在消息不可达指定队列时,可以借助扇出类型交换机(之前写过消息回退的处理方案,扇出交换机处理的方案优先级高于消息回退)处理不可达消息,然后放置一个备份队列,供消费者处理不可…

Docker 网络使用指南

目录 前言 Docker网络类型 Docker 网络概念 使用 Docker 网络 运行容器并连接到网络 检查网络 清理网络资源 Docker Compose网络 前言 Docker 是一种容器化平台,它允许你将应用程序和它们的依赖项打包成一个称为容器的独立单元。Docker 提供了一种轻量级、可…

IP地址的地理位置:固定性与动态性的平衡

IP地址的地理位置是网络通信中一个重要的元素,常被用于定位设备和用户。然而,很多人好奇,IP地址的地理位置是否会发生变化?本文将深入讨论IP地址地理位置的固定性与动态性之间的平衡,以及造成这种变化的因素。 1. IP地…

DevEco Studio设置每次进入 是否自动进入上一次的项目

首先 我们第一次创建项目 并不是这个界面 如果我们想在这个界面创建项目的话 可以 点击左上角 File 下的 New 下的 Create Project 这里 我们可以点击左上角 File 选择下面的 Settings… 这个界面就有非常多的配置 然后 我们选择到下图操作的位置 这里有一个Reopen projects…

MySQL进阶知识:锁

目录 前言 全局锁 表级锁 表锁 元数据锁(MDL) 意向锁 行级锁 行锁 行锁演示 间隙锁/临界锁 演示 前言 MySQL中的锁,按照锁的粒度分,分为以下三类 全局锁:锁定数据库中的所有表。表级锁:每次操…

民安智库(第三方市场调查公司):专业调研引领某月饼生产商企业发展

在中国的传统佳节中,月饼是一种重要的节日食品,也是送礼的首选。某月饼生产商一直以来以其高品质、独特口味的月饼而备受消费者喜爱。为了更好地了解消费者对产品的满意度,该月饼生产商决定委托民安智库(湖北知名满意度测评公司&a…

selinux-policy-default(2:2.20231119-2)软件包内容详细介绍(6)

接前一篇文章:selinux-policy-default(2:2.20231119-2)软件包内容详细介绍(5) 4. 重点文件内容解析 (1)control/postist文件 上一回解析到control/postinst文件中的以下代码片段,本回继续往下解析: if [ -f $OLDFC ]; thenOLDSORT=$(mktemp)NEWSORT=$(mktemp)sort &…

conda环境下,安装所有包都报错:No module named ‘certifi‘

如果所有的 Conda 命令都报错,提示找不到 certifi 模块,这表明 Conda 环境存在较严重的问题。在这种情况下,你可以尝试以下步骤来解决问题: 手动安装 certifi: 由于 Conda 本身依赖于 certifi,缺少这个包…

el-row错位问题解决

<el-row type"flex" style"flex-wrap:wrap">

oracle客户端工具中如何查询awr报告

一、查询快照信息 select snap_id,dbid,instance_number,to_char(end_interval_time, YYYY-MM-DD HH24:MI:SS)from dba_hist_snapshotwhere end_interval_time >to_date(2022-12-1 09:00:00, yyyy-mm-dd hh24:mi:ss) -- 开始时间&#xff0c;值自己修改到需要查询awr报告的…

yolov8 原木识别模型

一、模型介绍 模型基于 yolov8数据集采用SKU-110k&#xff0c;这数据集太大了十几个 G&#xff0c;所以只训练了 10 轮左右就拿来微调了原木数据微调&#xff1a;纯手工标注 200 张左右原木图片&#xff0c;训练 20 轮的效果 PS&#xff1a;因为训练时间比较长 Google 的 Cola…

关于pyqt5与moviepy到打包的坑点

1,pyqt5 关于pyqt5 designer.exe 的使用主要就是了解pyqt5右侧菜单栏的功能使用 打包后的文件&#xff0c;需要继承改类&#xff0c;进行图形指令交互 关于pyqt5&#xff0c;要了解信号&#xff0c;和槽点的相互关系。 我在pyqt5中使用moviepy的时候&#xff0c;需要用到异步…

VMware系列:Vmware vSphere常见问题及解决办法

Vmware vSphere常见问题及解决办法 1. 虚拟机文件被锁,无法正常 power on故障状态:祸根:解决方法:2. 忽视掉ESXi/vCenter Server提示SSH事件的方法3. 尝试迁移一台带USB设备的VM失败故障状态:故障分析:解决方案:4. Convert Linux系统的Troublshooting过程5. vCenter Serv…

[VNCTF 2023] web刷题记录

文章目录 象棋王子电子木鱼BabyGo 象棋王子 考点&#xff1a;前端js代码审计 直接查看js源码&#xff0c;搜一下alert 丢到控制台即可 电子木鱼 考点&#xff1a;整数溢出 main.rs我们分段分析 首先这段代码是一个基于Rust的web应用程序中的路由处理函数。它使用了Rust的异步…

Tekla二次开发方案调研

Tekla二次开发方案调研 1、Tekla是什么2、与Tekla相类似的产品或公司3、Tekla 2017软件安装4、Tekla的二次开发是什么5、如何进行Tekla的二次开发6、根据已有的材料自己进行Tekla二次开发测试# 1、要全面了解一件事情,需要先做调研。 # 2、根据需要进一步进行了解更精细化的内…

SpringMVC多种类型数据响应

SpringMVC多种类型数据响应入门 1.概念 RequestMapping 作用&#xff1a;用于建立请求URL和处理请求方法之间的对应关系 位置&#xff1a; 类上&#xff0c;请求URL的第一级访问目录。此处不写的话&#xff0c;就相当于应用的根目录 方法上&#xff0c;请求URL的第二级访问目…

交叉熵损失函数(Cross-Entropy Loss Function)

交叉熵损失函数&#xff08;Cross-Entropy Loss Function&#xff09; 在处理机器学习或深度学习问题时&#xff0c;损失/成本函数用于在训练期间优化模型。目标几乎总是最小化损失函数。损失越低&#xff0c;模型越好。交叉熵损失是最重要的成本函数。它用于优化分类模型。对…

10.0 输入输出 I/O

IO操作主要是指使用Java程序完成输入&#xff08;Input&#xff09;、输出&#xff08;Output&#xff09;操作。所谓输入是指将文件内容以数据流的形式读取到内存中&#xff0c;输出是指通过Java程序将内存中的数据写入到文件中&#xff0c;输入、输出操作在实际开发中应用较为…

TiDB专题---2、TiDB整体架构和应用场景

上个章节我们讲解了TiDB的发展和特性&#xff0c;这节我们讲下TiDB具体的架构和应用场景。首先我们回顾下TiDB的优势。 TiDB的优势 与传统的单机数据库相比&#xff0c;TiDB 具有以下优势&#xff1a; 纯分布式架构&#xff0c;拥有良好的扩展性&#xff0c;支持弹性的扩缩容…