百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT文章 > 正文

StreamReader StringReader 区别 reader和inputstream的区别

chenpack 2025-05-20 13:30 774 浏览 0 评论

详解Java IO流中的InputStream和Reader类
package filedemo;

import java.io.*;

/**
 * 本类讲解Java IO流之InputStream和Reader 在Java中InputStream和Reader均属于抽象类 所以不能直接实例化本身
 * 需要实例化其实现类(FileInputStream字节流和FileReader字节流)
 * 
 * @author 道哥说编程
 * 
 */
public class InputStreamAndFileReader {
	/**
	 * 该方法实现用InputStream的子类FileInputStream读取自身的效果
	 * 
	 * @throws FileNotFoundException
	 */
	public static void InputStreamDemo() {
		// 创建字节输入流对象
		try {
			//指定绝对路径
			//File file = new File("E:\\books.xml");
			//使用当前项目的根目录
			File file = new File("books.xml");
			FileInputStream files = new FileInputStream(file);
			//创建一个字节数组(这个地方的字符数组长度要自定义合适不然的话一行稍微长点的字符串就会变成两行读取)
			byte[] buff = new byte[];
			//保存实际读取的字节数
			int hasRead=0;
			//用循环语句来逐句读取
			while((hasRead = files.read(buff))>0)
			{
				//取出数据
				System.out.println(new String(buff,0,hasRead));
			}
			//用完了记得关闭连接(因为IO资源不属于内存资源,垃圾回收站无法回收,所以需要手动的关闭该资源)
			files.close();
			
			
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	public static void fileReaderDemo()
	{
		// 创建字符输入流对象
		try {
			//指定绝对路径
			//File file = new File("E:\\books.xml");
			//使用当前项目的根目录
			File file = new File("books.xml");
			FileReader files = new FileReader(file);
			//创建一个字节数组(这个地方的字符数组长度要自定义合适不然的话一行稍微长点的字符串就会变成两行读取)
			char[] buff = new char[];
			//保存实际读取的字节数
			int hasRead=0;
			//用循环语句来逐句读取
			while((hasRead = files.read(buff))>0)
			{
				//取出数据
				System.out.println(new String(buff,0,hasRead));
			}
			//用完了记得关闭连接(因为IO资源不属于内存资源,垃圾回收站无法回收,所以需要手动的关闭该资源)
			files.close();
			
			
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	public static void main(String[] args) {
		System.out.println("----------字节流读取---------");
		InputStreamDemo();
		System.out.println("----------字符流读取---------");
		fileReaderDemo();
	}

}

案例中有不明白的地方可以在评论区留言或者私信道哥@道哥说编程

StreamReader StringReader 区别 reader和inputstream的区别

相关推荐

printf使用详解_printfi

C语言的调试利器-printf大法,无坚不摧,攻无不破程序输入与输出当我们操作一个linux终端的时候,执行linux命令程序,可以看到命令的输出信息,或者要求输入数据。那么,这些操作就是lin...

在java项目中怎么查看maven版本

你还不知道java程序maven打包后如何查看jar的编译版本,过来看看有时候我们需要知道一个jar是编译是依赖JAVA哪个版本的需求。如:我们知道该程sjjcb-dev-lyq-example-...

mysql多行合并成一行_mysql多行拼接

多行合并成一行sql函数group_concat和stuff一、MySQL中group_concat函数完整的语法如下:group_concat([DISTINCT]要连接的字段[OrderB...

pythonfor循环求1!+2!+3!+....+n!的和 python用循环求1到100的和

python经典案例:求1到之和问题:求1到之和方法1:利用循环求和#!/usr/bin/python#coding:utf-8#author:菜就多练呀total=0foriinran...

python批量查询备案号_python 批量查询

批量查询ip对应域名、备案信息、百度权重ip2domain-批量查询ip对应域名、备案信息、百度权重本工具二开自https://github.com/sma11new/ip2domain在批量挖S...

motionbuilder镜像动画 motionbuilder插件

如果把《哪吒2》制作全部交给AI《哪吒2》作为现象级动画电影,其成功确实依赖于产业链的高效协作。随着AI技术逐渐渗透动画制作全流程,未来动画产业将呈现"AI全链参与+人类创意主导"的深度融合模式。以下...

逻辑运算符、算术运算符、赋值运算符等等归纳

运算符(算术、比较、逻辑等)1、算数运算符如:a=,b=+加如:a+b=-减如:a-b=-乘如:a*b=/除如:a/b=%取余如:a/b=**幂x**y返回x的y次方,如...

如何生成HTML5页面代码_如何用html5制作一个网页

vscode快速生成html代码技巧快速生成Html5骨架在Html文件中输入html:5按下回车键,可快速生成HTML5页面模板:Docu...

国家海洋局第二海洋研究所(海洋二所)考研答疑

上海海洋大学发布年硕士研究生招生章程,来看详情→近日,上海海洋大学发布年硕士研究生招生章程一起来看看吧!一、学校简介上海海洋大学建校于年,是一所多科性应用研究型大学,是上海市人民政府与国家海洋局、农业...

vue-awesome-swiper轮播图实现

swiper在vue中正确的使用方法swiper是网页中非常强大的一款轮播插件,说是轮播插件都不恰当,因为它能做的事情太多了,swiper在vue下也是能用的,需要依赖专门的vue-swiper插件,...

yarn下载安装教程_yarn安装axios

yarn的安装和使用一、安装在windows下(1)下载node.js,使用npm安装npminstall-gyarn(2)查看版本yarn--versionYarn淘宝源安装&nbs...

freemodbus 主机源码 freemodbus stm32

STM32单片机移植FreeModbus详细过程modbus是一个非常好的串口协议(当然也能用在网口上),它简洁、规范、强大。可以满足大部分的工业、嵌入式需求。这里详细说下如何将freemodbus...

python if 多条件并列判断_python多个if并列怎么运行

pythonif多条件并列判断的三种方法pythonif多条件并列判断的三种方法如果使用python的if进行多个条件表达式的判断呢?下面介绍三种方法:使用and或or来连接多个条件表达式,比如条...

driver memory和executor memory怎么设置 memory odd ratio怎么设置

RocketMQ原理—2.源码设计简单分析一大纲1.NameServer的启动脚本2.NameServer启动时会解析哪些配置3.NameServer如何初始化Netty网络服务器4.NameServ...

FPGA编程架构_fpga的编程语言是什么

深入浅出带你了解FPGA架构数字集成电路有两种类型:ASIC和FPGA(现场可编程门阵列)。专用集成电路(ASIC)有一个预先定义的特定硬件功能,在生产后不能重新编程。但FPGA可以在制造后可无限编程...

取消回复欢迎 发表评论: