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

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.xdnf.cn/news/6627.html

相关文章:

  • MySQL MCP 使用案例
  • ubuntu 更新华为源
  • windows下authas调试tomcat
  • 突发,苹果发布下一代 CarPlay Ultra
  • WEB安全--Java安全--shiro721反序列化漏洞
  • 快速选择算法:优化大数据中的 Top-K 问题
  • 本土DevOps革命:Gitee如何撬动中国企业的数字化转型新动能
  • ssti刷刷刷
  • 使用 LSTM/GRU 预测设备异常的模型
  • 【HTML5学习笔记2】html标签(下)
  • Java视频流RTMP/RTSP协议解析与实战代码
  • PCL 计算一条射线与二次曲面的交点
  • 西安前端面试
  • YOLO+UI(C#)开发
  • 基于React的高德地图api教程006:两点之间距离测量
  • 大规模CFD仿真计算中,SIMPLE或者PISO算法中加速压力场方程迭代求解
  • SZU 编译原理
  • BASE理论
  • 四、xlib区域
  • go 集成base64Captcha 支持多种验证码
  • 【机器学习|学习笔记】 K近邻算法(K Nearest Neighbour,KNN )详解,附代码。
  • 从银行排队到零钱支付:用“钱包经济学”重构Java缓存认知
  • LLaMA-Factory微调大模型Qwen2.5
  • 【设计模式】- 行为型模式1
  • 利用 Amazon Bedrock Data Automation(BDA)对视频数据进行自动化处理与检索
  • 2025年PMP 学习十六 第11章 项目风险管理 (总章)
  • IDEA中springboot项目中连接docker
  • upload-labs通关笔记-第7关 文件上传之空格绕过
  • Qwen3技术报告解读
  • 基于springboot+vue的机场乘客服务系统