java输入输出类

news2025/5/17 7:29:36
    父类                                              子类
                                   --->System.in(实例类)
InputStream(抽象类,所有输入流的父类)|
 							       --->FileInputStream
 							       	   ---->System.out(实例类)
OutpustStream(抽象类,所有输出流的父类)|
									   ----> FileOutputStream
                          ---->InputStreamWriter   非文件流输出
Writer(抽象类)----------- |
						  ---->FilerWriter          文件流输出
						  ----->InputStreamReader   非文件流读入
Reader(抽象类)----实现   |
						  ----->FileReader          文件流读入
buffer类
BufferedReader  用来包装Reader类,如FileReader和InputSreamReader
BufferedWriter  用来包装Writer类,如FileWriter和OutputStreamWriter


			   --->包装InputStreamReader
BufferedReader|
			   --->包装FileReader
			   --->包装OutputStramWriter
BufferedWriter|
			   --->包装FileWriter
			        ---->包装InputStream
BufferedInputStream|
			        ---->包装FileInputStream
			        ---->包装OutputStream
BufferedOutputStream|
 					---->包装FileOutputStream

当不明白输入或输出流该如何创建,以下思路

  1. 是否使用buffer缓存机制 包装/不包装
  2. 输入?输出 Input/Output Reader/Writer
  3. 文件还是非文件 FileInputStream/InputStream :FileReader/OutputStreamReader
  4. 使用Writer/Reader字符处理还是OutputStram/InputStream直接处理 :InputStreamWriter/System.out

如非buffer机制输出非文件字符处理是:
OutputStreamWriter
对应的buffer处理的是:
BufferedWriter bf=new BuffererdWriter(OutPutStreamWriter(System.out));
buffer处理只是在输入/输出流外加一层壳

BufferedReader

  1. String readLine()
    读一行
    2.int read()
    读一个字符
    3.int read(char[] arr)
    读满字符数组
    4.int read(char[] arr,int off,int length)
    从数组off下标开始读入,读取length长度

BufferedWriter

  1. newLine()
    创建一行

StreamTokenizer

  1. ordinaryChars(char a,char b)
    ascill码从a到b作为未标记字符(nextToken遇到未标记字符,会停止读取,返回其ascill码)
  2. wordChars(char a,char b)
    将ascill码从a到b作为普通字符处理
  3. resetSyntax()
    所有字符设置初始到默认状态
  4. whitesapceChars(int a,int b)
    将ascill码从a到b的字符会忽视,默认将空格和换行符跳过,每次遇到该字符会终止此次读取,下次继续读取时会默认跳过开头这些字符
  5. int nextToken()
    遇到非标记字符时,返回该字符的ascil码,若此次读取了一些内容,则返回ttype表示此次读取的数据类型如number和string分别存储在nval和sval
    如果想读取long类型,由于nval存储double类型,long类型会精度丢失,所以可以先使用字符读取,再使用Long.parseLong()
    st.ordinary(‘0’,‘9’);
    st.wordChars(‘0’,‘9’)
    st.nextToken();
    Long res=Long.paseLong(st.sval);
    st.resetSyntax(); //可以省略

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

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

相关文章

Redis解析

Redis解析 一、单线程模型 redis在io层面是多线程的,在数据处理层面是单线程的。 多线程一般用于: 关闭连接删除/淘汰内存网络IO 1.1 io多路复用 redis使用nio(select、poll、epoll)的方式处理socket 主线程负责接收建立连接…

2025年Ai写PPT工具推荐,这5款Ai工具可以一键生成专业PPT

上个月给客户做产品宣讲时,我对着空白 PPT 页面熬到凌晨一点,光是调整文字排版就改了十几版,最后还是被吐槽 "内容零散没重点"。后来同事分享了几款 ai 写 PPT 工具,试完发现简直打开了新世界的大门 —— 不用手动写大纲…

css:倒影倾斜效果

这是需要实现的效果,平时用的比较多的是添加阴影,是box-shadow,而添加倒影是box-reflect,需要注意的是box-reflect需要添加浏览器前缀,比如我用的谷歌浏览器,要加-webkit-才能生效。 -webkit-box-reflect:…

语音识别——通过PyAudio录入音频

PyAudio 是一个用于处理音频的 Python 库,它提供了录制和播放音频的功能。通过 PyAudio,可以轻松地从麦克风或其他音频输入设备录制音频,并将其保存为文件或进行进一步处理。 安装 PyAudio 在使用 PyAudio 之前,需要先安装它。可…

五月月报丨MaxKB在教育行业的应用进展与典型场景

在2025年的3月和4月的“用户应用月度报告”中,MaxKB开源项目组相继总结了MaxKB开源项目在政府、公共事业、教育、医疗以及企事业单位的应用情况。毫无疑问,在DeepSeek等国产大模型被各行各业的用户广泛接受之后,AI应用建设并运营的步伐也在显…

【流程控制结构】

流程控制结构 流程控制结构1、顺序结构2、选择结构if基本选择结构if else语法多重if语法嵌套if语法switch选择结构 3、循环结构循环结构while循环结构程序调试for循环跳转语句区别 流程控制结构 1、顺序结构 流程图 优先级 2、选择结构 if基本选择结构 单if 语法 if&…

PowerBI基础

一、前言 在当今数据驱动的时代,如何高效地整理、分析并呈现数据,已成为企业和个人提升决策质量的关键能力。Power BI 作为微软推出的强大商业智能工具,正帮助全球用户将海量数据转化为直观、动态的可视化洞察。数据的世界充满可能性&#xf…

一文了解多模态大模型LLaVA与LLaMA的概念

目录 一、引言 二、LLaVA与LLaMA的定义 2.1 LLaMA 2.2 LLaVA 2.3 LLaVA-NeXT 的技术突破 三、产生的背景 3.1 LLaMA的背景 3.2 LLaVA的背景 四、与其他竞品的对比 4.1 LLaMA的竞品 4.2 LLaVA的竞品 五、应用场景 5.1 LLaMA的应用场景 5.2 LLaVA的应用场景 六…

原生小程序+springboot+vue+协同过滤算法的音乐推荐系统(源码+论文+讲解+安装+部署+调试)

感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,我会一一回复,希望帮助更多的人。 系统背景 在数字音乐产业迅猛发展的当下,Spotify、QQ 音乐、网易云音乐等音乐平台的曲…

【MySQL】项目实践

个人主页:Guiat 归属专栏:MySQL 文章目录 1. 项目实践概述1.1 项目实践的重要性1.2 项目中MySQL的典型应用场景 2. 数据库设计流程2.1 需求分析与规划2.2 设计过程示例2.3 数据库设计工具 3. 电子商务平台实践案例3.1 系统架构3.2 数据库Schema设计3.3 数…

回调函数应用示例

回调函数是一种通过函数指针(或引用)调用的函数,它在特定事件或条件发生时被另一个函数调用。回调函数的核心思想是将函数作为参数传递,以便在适当的时候执行自定义逻辑,常用于异步编程、事件驱动架构等场景。 业务场景…

upload-labs通关笔记-第4关 文件上传之.htacess绕过

目录 一、.htacess 二、代码审计 三、php ts版本安装 1、下载ts版本php 2、放入到phpstudy指定文件夹中 3、修改php配置文件 4、修改php.ini文件 5、修改httpd.conf文件 (1)定位文件 (2)修改文件 6、重启小皮 7、切换…

DeepSearch代表工作

介绍下今年以来深度搜索相关的一些论文~ 文章目录 Search-o1简述方法实验Search-R1简介方法带搜索引擎的强化学习多轮搜索调用的生成训练模板奖励建模实验R1-Searcher简介方法数据选择两阶段的强化学习训练算法ReSearch: Learning to Reason with Search for LLMs via Reinforc…

记录一次服务器卡顿

一、服务器卡顿现象 服务用了一段时间后,突然很卡,发现在服务器上新建excel也很卡,发现服务器中病毒了,然后重新安装了操作系统。重新安装服务环境时,发现同时安装pdf、tomcat时都很慢,只能一个安装好了&am…

leetcode2749. 得到整数零需要执行的最少操作数-medium

1 题目:得到整数零需要执行的最少操作数 官方标定难度:中 给你两个整数:num1 和 num2 。 在一步操作中,你需要从范围 [0, 60] 中选出一个整数 i ,并从 num1 减去 2i num2 。 请你计算,要想使 num1 等于…

14 C 语言浮点类型详解:类型精度、表示形式、字面量后缀、格式化输出、容差判断、存储机制

1 浮点类型 1.1 浮点类型概述 浮点类型用于表示小数(如 123.4、3.1415、0.99),支持正数、负数和零,是科学计算和工程应用的核心数据类型。 1.2 浮点数的类型与规格 浮点类型存储大小值范围(近似)实际有效…

Vue3:脚手架

工程环境配置 1.安装nodejs 这里我已经安装过了,只需要打开链接Node.js — Run JavaScript Everywhere直接下载nodejs,安装直接一直下一步下一步 安装完成之后我们来使用电脑的命令行窗口检查一下版本 查看npm源 这里npm源的地址是淘宝的源&#xff0…

显性知识的主要特征

有4个主要特征: 客观存在性静态存在性可共享性认知元能性

自定义快捷键软件:AutoHotkey 高效的快捷键执行脚本软件

AutoHotkey 是一种适用于 Windows 的免费开源脚本语言,它允许用户轻松创建从小型到复杂的脚本,用于各种任务,例如:表单填充、自动点击、宏等。 定义鼠标和键盘的热键,重新映射按键或按钮,并进行类似自动更…

【C++】 —— 笔试刷题day_30

一、爱吃素 题目解析 这道题,简单来说就是给定两个数a和b,然后让我们判断a*b是否是素数。 算法思路 这道题还是比较简单的 首先,输入两个数a和b,这两个数的数据范围都是[1, 10^11];10的11次方,那a*b不就是…