当前位置: 首页 > news >正文

java输入输出类

    父类                                              子类--->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.dtcms.com/a/195500.html

相关文章:

  • 如何排查阻塞语句
  • 【Linux】iptables 命令详解
  • dify知识库支持图文回复实践
  • STM32H743IIT6_ADC采集误差分析与ADC_DMA
  • Stainer Chain的镜像对称性的充分必要条件
  • 建筑设计单位的数据安全如何保护?天锐蓝盾针对性解决方案
  • 【AI模型部署】
  • Linux-进程概念(一)
  • Web-CSS入门
  • 优雅使用Gunicorn进程管理FastAPI
  • buuctf Crypto-摩丝1
  • 矫平机技术新维度:材料科学、数字孪生与零缺陷制造
  • QML 动画控制、顺序动画与并行动画
  • 【Linux网络】网络套接字编程
  • Python循环控制
  • 模板分享:网络最小费用流
  • 费曼技巧及提高计划
  • c++,linux,多线程编程详细介绍
  • 2025 Adobe Acrobat DC安装教程
  • 天能股份SAP系统整合实战:如何用8个月实现零业务中断的集团化管理升级
  • Python模块化编程进阶指南:从基础到工程化实践
  • 7 个正则化算法完整总结
  • Executors类详解
  • 使用 ESP32 驱动 ±12V 压电无源蜂鸣器(NPN 三极管 + PWM 控制驱动电路)
  • arxiv等开源外文书数据的获取方式
  • 安全生产调度管理系统的核心功能模块
  • Multimodal models —— CLIP,LLava,QWen
  • 信息收集工具
  • 【问题排查】easyexcel日志打印Empty row!
  • RTK哪个品牌好?2025年RTK主流品牌深度解析