Java.过滤流(包装流)

AD23导出Gerber文件保姆级教程:从PCB到嘉立创下单,一步不落(附常见问题排查) 本文提供AD23导出Gerber文件的详细教程,涵盖从PCB设计检查到嘉立创下单的全流程,特别针对两层板设计场景,帮助新手工程师避免常见错误。内容包括Gerber文件生成步骤、钻孔文件设置、文件检查工具推荐以及嘉立创下单实操指南,确保PCB打样顺利。 阅读详情

包装类的概念与作用
各种字节节点流类,它们都只具有读写字节内容的方法,以FileInputStream与FileOutputStream为例,它们只能在文件中读取或者向文件中写入字节,在实际应用中我们往往需要在文件中读取或者写入各种类型的数据,就必须先将其他类型的数据转换成字节数组后写入文件,或者从文件中读取到的字节数组转换成其他数据类型,很麻烦的!!通过FileOutputStream将一个浮点小数写入到文件中和将一个整数写入到文件时很困难的。
这时就需要包装类DataOutputStream。它提供了往各种输出流对象中写入各种类型的数据的方法。 传递一个FileOutputStream输出流对象给DataOutputStream实例对象和调用DataOutputStream实例对象的用于写入浮点小数的方法。

DataOutputStream并没有对应到任何具体的流设备,一定要给它传递一个对应具体流设备的输出流对象,完成类似DataOutputStream功能的类就是一个包装类,也叫过滤流类或处理流类。它对OutputStream流类进行了包装,使编程人员使用起来更方便。

DataOutputStream包装类的构造函数语法:public DataOutputStream(OutputStream out)

包装类也可以包装另外一个包装类

DataOutputStream的部分方法列表:
public final void writeBoolean(boolean v)
public final void writeShort(int v)
public final void writeChar(int v)
public final void writeint(int v)
public final void writeLong(long v)
public final void writeFloat(float v)
public final void writeDouble(double v)
public final void writeBytes(String s)

//DataStreamTest.java import java.io.*; public class DataStreamTest { public static void main(String[] args) throws Exception { // TODO: Add your code here FileOutputStream fos=new FileOutputStream("count.txt"); BufferedOutputStream bos=new BufferedOutputStream(fos); DataOutputStream dos=new DataOutputStream(bos); dos.writeUTF("ab中å½"); dos.writeBytes("ab中å½"); dos.writeChars("ab中å½"); dos.close(); FileInputStream fis=new FileInputStream("count.txt"); BufferedInputStream bis=new BufferedInputStream(fis); DataInputStream dis=new DataInputStream(bis); System.out.println(dis.readUTF()); //读åwriteBytes()åwriteChars()æ¹æ³åå¥çæ°æ®ï¼è¯»åç»ææ¯ä¹±ç ï¼æä»¥ä¸è¬ä¸ç¨writeBytesåwriteCharsæ¹æ³ byte [] buf=new byte[1024]; int len=dis.read(buf); System.out.println(new String(buf,0,len)); fis.close(); } }

 

 


BufferedInputStream与BufferedOutputStream类
对IO进行缓冲是一种常见的性能优化方式
缓冲流为I/o流增加了内存缓冲区,增加缓冲区有两个基本目的:允许Java程序一次不只操作一个字节,这样提高了程序的性能。
由于有了缓冲区,使得在流上执行skip、mark、和reset方法都成为可能。

BufferedInputStream和BufferedOutputStream是Java提供的两个缓冲区包装类,不管地成系统是否使用了缓冲区,这两个类在自己的实例对象中创建缓冲区。这种缓冲区与底层系统提供的缓冲区是有区别的。底层系统提供的缓冲区直接与目标设备交换数据。包装类创建的缓冲区需要调用包装类所包装的那个输出流对象将这个缓冲区的数据写入到底层设备或底层缓冲区中。底层缓冲区就是一次向底层设备写入或者读取大量数据。而包装类缓冲区实现一次读取一行的作用

BufferedInputStream的两个构造函数
BufferedInputStream(InputStream in)创建具有32个字节的缓冲区的缓冲流
BufferedInputStream(InputStream in,int size)按size的大小来创建缓冲区

BufferedOutStream类的两个构造函数:
BufferedOutputStream(OutStream out)
BufferedOutputStream(OutputStream out,ont size)

BufferedReader和BufferedWriter类
BufferedReader的readLine方法可以一次读取一行文本,BufferedWriter的newLine方法可以向字符流中写入不同操作系统下的换行符
-------------------
DataInputStream与DataOutputStream类
提供了从I/O流中读写各种基本数据类型数据的各种方法

DataOutputStream类提供了三个写入字符串的方法:
public final void writeBytes(String s)由于Java中的字符编码是Unicode的,每个字符占用两个字节,writeBytes方法只是将每个字符的低字节写入到目标设备中
public final void writeChars(String s)将每个字符中的两个字节都写入到目标设备中
public final void writeUTF(String s)将字符串按UTF编码方式写入到目标设备中,在写入的数据中是带有长度头的

关闭流栈中的最上层的流对象,将会自动关闭流栈中的所有底层流对象


PrintStream类提供了一系列的print和println方法,可以将基本数据类型的数据格式化成字符串输出。格式化输出就是将一个数据按照字符串的格式输出。例如,97被格式化输出的实际字节数据为0x39和0x37

PrintStream的3个构造函数:
PrintStream(OutputStream out)
PrintStream(OutputStream out,boolean autoflush)
PrintStream(OutputStream out,boolean autoflush,String encoding)

与PrintStream对应的PrintWriter类,即使遇到了文本换行标识符(/n),PrintWriter类也不会自动清空缓冲区

PrintWriter的println方法能根据操作系统的不同而生成相应的文本换行标识符。在Windows下的文本换行标识符是“/r/n”,而Linux下的文本换行标识符是“/n”。

 

ObjectInputStream和ObjectOutputStream这两个包装类,用于从底层输入流中读取对象性的数据和将对象类型的数据写入到底层输出流
ObjectInputStream与ObjectOutputStream类所读写的对象必须实现了Serializable接口。对象中的transient和static类型的成员变量不会被读取和写入。

一个可以被序列化的MyClass类的定义:
public class MyClass implements Serializable{
 public transient Thread t;
 private String customerID;
 private int total;
}

示例代码:创建一个可序列化的学生对象,并用ObjectOutputStream类把它存储到一个文件(mytext.txt)中,然后再用ObjectInputStream类把存储的数据读取到一个学生对象中,即恢复保存的学生对象。
//Serialization.java import java.io.*; public class Serialization { public static void main(String[] args) throws Exception { // TODO: Add your code here Student stu1=new Student(19,"zhangsan",25,"huaxue"); Student stu2=new Student(20,"lisi",23,"wuli"); FileOutputStream fos=new FileOutputStream("student.txt"); ObjectOutputStream os=new ObjectOutputStream(fos); os.writeObject(stu1); os.writeObject(stu2); os.close(); FileInputStream fis=new FileInputStream("student.txt"); ObjectInputStream is=new ObjectInputStream(fis); stu1=(Student)is.readObject(); stu2=(Student)is.readObject(); is.close(); System.out.println("id:"+stu1.id); System.out.println("name:"+stu1.name); System.out.println("age:"+stu1.age); System.out.println("department:"+stu1.department); System.out.println("id:"+stu2.id); System.out.println("name:"+stu2.name); System.out.println("age:"+stu2.age); System.out.println("department:"+stu2.department); } }

 

//Student.java import java.io.Serializable; public class Student implements Serializable { int id; String name; int age; String department; public Student(int id,String name,int age,String department){ this.id=id; this.name=name; this.age=age; this.department=department; } }

 


字节流与字符流的转换
InputStreamReader和OutputStreamWriter,是用于将字节流转换成字符流来读写的两个类,InputStreamReader可以将一个字节流中的字节解码成字符后读取,OutputStreamWriter将字符编码成字节后写入到一个字节流中
InputStreamReader的两个主要的构造函数:
InputStreamReader(InputStream in)
InputStreamReader(InputStream in,String CharsetName)

OutputStreamWriter的两个主要的构造函数:
OutputStreamWriter(OutputStream out)
OutputStreamWriter(OutputStream out,String CharsetName)

避免频繁地在字符与字节之间进行转换,最好不要直接使用InputStreamReader和OutputStreamWriter类来读写数据,应尽量使用BufferedWriter类包装OutputStreamWriter类,用BufferedReader类包装InputStreamReader

FileReader

【Python Turtle合集】有趣好玩的代码当然要分享给大家啦~(皮卡丘、玫瑰花、小黄人......) 前言 🚀 作者 :“程序员梨子” 🚀 **文章简介 **:本篇文章主要是写了利用Turtle库绘制四种不一样的图案的小程序! 🚀 **文章源码免费获取 : 为了感谢每一个关注我的小可爱💓每篇文章的项目源码都是无 偿分享滴💓👇👇👇👇 点这里蓝色这行字体自取,需要什么源码记得说标题名字哈!私信我也可! 🚀 欢迎小伙伴们 点赞👍、收藏⭐、留言💬 正文 今天给大家介绍一个好玩儿的库,嘻嘻! Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x、纵 阅读详情

相关推荐

【2025年五一数学建模竞赛】A题 完整论文 模型建立与求解

2025年五一数学建模竞赛 A题:基于历史数据与模式识别的道路车流量推测模型研究

Magnolia_He的博客 3783

JAVA IO流-包装流-字节流 <BufferedInputStream>输入流 与 <BufferedOutputStream>输出流

IO流-包装流-字节流 描述 包装流-字节流<BufferedInputStream>输入流 与 <BufferedOutputStream>输出流 在使用方法和写法上与 基础流-字节流<FileInputStream>输入流 与 <FileOutputStream>输出流 基本一致 (不知道 首先要掌握 基础流-字节流 的知识) 不同处 在运转流程上 基础流: 程序--->磁盘 程序<--磁盘 包装流: 程序-->缓冲区(内存)-->磁盘 程序<--缓冲区(内存)

weixin_46066445的博客 468

特征选择(模型输入参数的分析选择)方法汇总

特征选择是模式识别和机器学习领域的重要研究课题之一。为了提高准确率, 人们往往最大限度地提取特征信息。然而, 过大的特征向量维数不仅导致计算成本的增加, 复杂运算也随之带来分类识别率的下降。因此, 通过合适的特征选择算法, 去除无关特征和冗余特征, 获得有助于分类的最优特征子集, 对提高识别性能和降低计算成本具有重要意义。 特征选择主要有两个功能: 减少特征数量、降维,使模型泛化能力更强,减少过拟合 增强对特征和特征值之间的理解 参考资料: 优快云《几种常用的特征选择方法》 知乎《机器学习中,.

David's Tweet 1万+

Java学习笔记——包装流

包装流包括能够高效读写的流,能够转换编码的转换流,能够持久化存储对象的序列化流,这些功能更为强大的流,都是在基本的流对象基础之上创建而来的,相当于是对基本流对象的一种增强。(也可以理解为对基础流的一些包装)

m0_69508578的博客 721

SpringSecurity(15)——OAuth2密码模式

SpringSecurity Oauth2密码模式

peng_gx的博客 1520

YOLOv8实例分割实战:从LabelMe标注到模型训练全流程(附完整代码)

本文详细介绍了YOLOv8实例分割的完整实战流程,涵盖从使用LabelMe进行数据标注、格式转换,到构建数据集、配置参数并完成模型训练的全过程。文章提供了详尽的代码示例和常见问题解决方案,旨在帮助开发者高效掌握YOLOv8实例分割技术,快速应用于实际项目。

java5的博客 813

Java8之Stream

第一、Java8 Stream之filter,distinct,skip,limit,map,flatmap详细介绍 List<Integer> list= Arrays.asList(1,2,3,4,5,1); //1.filter过滤流中的数据。 List<Integer> result=list.stream().filter(i->i%2==0).collect(Collectors.toList()); System.out.println("filter过滤流中的数

龙吟山庄 1292

深入解析FastDDS:SHM与DATA-SHARING传输层的性能对比与实现细节

本文深入对比了FastDDS中SHM与DATA-SHARING两种传输层的实现机制与性能差异。SHM采用端口化共享内存模型,存在两次数据拷贝;而DATA-SHARING通过共享历史实现真正的零拷贝,大幅降低延迟与CPU占用。文章结合实战测试数据,为机器人、自动驾驶等高实时性场景提供了关键的性能优化选型与配置指南。

weixin_28358083的博客 231

java过滤流

过滤流在读/写数据的同时可以对数据进行处理,它提供了同步机制,使得某一时刻只有一个线程可以访问一个I/O流,以防止多个线程同时对一个I/O流进行操作所带来的意想不到的结果。类FilterInputStream和FilterOutputStream分别作为所有过滤输入流和输出流的父类。   几种常见的过滤流         ◇ BufferedInputStream和BufferedOutput

zhongriqianqian2076的专栏 2608

YOLOv9分割改进 ,YOLOv9分割改进主干网络为华为EfficientNet,助力涨点

EfficientNet论文中研究了卷积网络的缩放和,并证明对深度,宽度和分辨率复合缩放的重要性,因此精度和效率更好。为了阐述相关的原理,我们提出了简单有效的复合缩放方法,使得模型缩放具有一定设计准则,同时兼顾了模型的效率。我下文将 YOLOv9 分割模型改进主干网络为 EfficientNet 融合网络结构。论文地址代码地址下文都是手把手教程,跟着操作即可添加成功把环境配置好,数据集处理好,训练基本能成功,创作不易,请帮忙点一个爱心,关注我,带你不挂科!

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 937

【51单片机仿真】基于51单片机设计的多功能电子时钟日历(实时时钟闹钟秒表温度检测)系统__资料编号5

该项目是基于单片机的多功能电子时钟系统,集成了时间显示、闹钟设置、秒表功能以及温度显示等功能。主要硬件包括1602液晶显示屏、DS1302时钟芯片、DS18B20温度传感器和蜂鸣器。系统通过按键进行时间和闹钟的设置,并实时显示当前时间和温度。

嵌入式阿齐Archie 2万+

Java语言的过滤数据流

为了解决不同数据流之间速度、数据格式差异的问题,以便提高输入/输出操作的效率(特别是当需要大量的输入、输出操作的程序时),因此,Java贴心的提供了过滤流。在已存在的数据流的基础上,过滤数据流与已经存在的数据流相联系,过滤流主要包括过滤输入数据流和过滤输出流。其中,过滤输入数据流从输入数据流中读取数据(以字节或者字符的形式存在),对这些数据进行加工处理,然后向内存提供特定格式的数据。而过滤输出数据流则是从内存中读取特定格式的数据,进行加工处理后,向输出数据流提供字节数据。

m0_57042151的博客 738

uniapp - 强力解决H5网页浏览器跨域问题,如何解决uniapp请求接口在浏览器跨域问题,UniApp H5 跨域代理配置详细教程完美解决所有uniapp跨域(调用第三方接口或服务器api跨域)

uni-app 跨域,uniApp解决h5跨域问题,解决uni-app请求接口在浏览器跨域问题,uni.request请求跨域问题解决方案,uni-app-跨域解决方法,彻底解决uniapp发布为H5的跨域问题,uniapp H5页面设置跨域请求_uniapp h5跨域配置,uniapp开发 H5 解决跨域问题,uniApp请求解决跨域问题,uniapp request如何实现前端请求跨域,解决uniapp调试过程中的请求跨域和环境配置,Uniapp调用外部api接口跨域请求,uni-app发布H5页面跨域

🏆 前端领域优质创作者 5353

Java中IO的相关操作——过滤流和包装类

过滤流和包装类 一、过滤流:使用节点流作为输入或输出。过滤流是使用一个已经存在的输入流或输出流连接创建的。  二、包装类:所谓包装类,就是可以直接将简单类型的变量表示为一个类,在执行变量类型的相互转换时,我们会大量使用这些包装类。Java共有六个包装类,分别是Boolean、Character、Integer、Long、Float和Double,从字面上我们就可以看出它们分

ImKing 2592

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

java过滤流(包装流)

包装类的概念与作用 各种字节节点流类,它们都只具有读写字节内容的方法,以FileInputStream与FileOutputStream为例,它们只能在文件中读取或者向文件中写入字节,在实际应用中我们往往需要在文件中读取或者写入各种类型的数据,就必须先将其他类型的数据转换成字节数组后写入文件,或者从文件中读取到的字节数组转换成其他数据类型,很麻烦的!!通过FileOutputStream将一个浮点...

Dmeo_meng的博客 857

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

java io流过滤流_Java IO流 过滤流和包装流

import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.FileInputStream;import java.io.FileOutputStream;imp...

weixin_30152861的博客 170

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Java IO流 过滤流和包装流

IO中的过滤流和包装流,就像是一个水管一样。我们原来的节点流水管太小了,或者说有杂质。通过他们可以过滤和增加对流的方法。更加方便我们的操作

田智文的专栏 1626

IO 输入与输出(5)-- 过滤流和包装类

下面是我们需要了解的知识l  包装类的概念与作用l  BufferedInputStream与BufferedOutputStream类l  DataInputStream与DataOutputStream类首先我们先看一下过滤流(包装类)的概念与作用这里需要澄清一点,这里所说的包装类可不是Java中像Integer,Char等这些包装类,这里所说的包装类和过滤流其实是一码事,过滤流就类似于包装类的作用。过滤流的主要特点是在输入与输出数据的同时能对所传输的数据做指定类型或格式的转换,即可实现对二进制字节数据

Richer学习记录-点滴拾趣 865

java-(IO)过滤流与包装类

包装类的概念与作用  FileInputStream 只能读写字节,如果要往文件写入或读取各种类型的数据,就必须将字节数组转换成其他类型,这就造成了一定的麻烦 DateOutputStream 提供了往各种输出流对象中写入各种类型的数据 注:DateOutputStream并没有对应到任何具体的流设备,一定要给它传递一个对应具体的流设备的输出流对象,完成类似DataOutputStream功

lijin_2009的专栏 851

JAVA IO系列---过滤流与包装类

·包装类的概念与作用·DataOutputStream类提供了往各种输出流对象中写入各种类型的数据的方法。

yitongfling的专栏 1734

JAVA I/O流 字符流和字节流、节点流和处理流(包装流、过滤流)、缓冲流

JAVA IO流一、相关概念1、分类:区别和联系 一、相关概念 I/O流: Input/Output Stream,文件输入输出流。 1、分类: 根据读写操作/数据流动的方向不同分为:输入流 和 输出流(站在程序的角度)。 其中输入流就是指读取文件中的内容输入到程序中的流,也就是读文件。 其中输出流就是指将程序中的内容输出到文件中的流,也就是写文件。 根据读写操作的基本单位不同分为:字...

X-Dragon的博客 3310

输入输出流-缓冲流,过滤流,包装流

输入输出流-缓冲流,过滤流,包装流JAVA中的IO分类可以分为输入/输出流,还可以分为字节流和字符流,还可以分为基础流和过滤流,可以根据自己的需要使用。一般的应用使用过滤流(实际上是功能增强的流)的时候比较多应用程序对不同的外部设备操作所使用的流类的对象是不同的。针对不同外部设备操作所使用的流的过程中全部都是:InputStream ,Reader, OutputStream, Wri

wyp164的专栏 4366

过滤流(包装流)

过滤流(包装流)的概念与作用 各种字节结点流类,它们都只具有读写字节内容的方法,以FileInputStream 与 FileOutputStream 为例,它们只能在文件中读取或者向文件中写入字节,在实际应用中我们往往需要在文件中读取或者写入各种类型的数据,就必须先将其它类型的数据转换成字节数组后写入文件,或者从文件中读取到的字节数组转换成其它数据类型,很麻烦!通过FileOutputStream 将一个浮点小数写入到文件中和将一个整数写入到文件时很困难的。 这时就需要包装类DataOutputStrea

weixin_59095717的博客 549

Java过滤流的作用

过滤流(filter stream)也称为包装流,是为某种目的过滤字节或字符的数据流; 基本输入流提供地读取方法只能用来读取字节或字符,而过滤器流能够读取整数值、双精度值或字符串,但需要一个过滤器类来包装输入流; FilterInputStream 类和 FilterOutputStream 类分别是 DataInputStream 类和 DataOutputStream 类的父类,它们分别实现了 DataInput 和 DataOutput 接口,该接口定义了独立于具体机器的带格式的读写操作,从而可以实现

weixin_46402869的博客 941

第7讲 IO/输入与输出-过滤流与包装类

<br />过滤流与包装类<br />·包装类的概念与作用<br />·BufferedInputStream与BufferedOutputStream类<br />·DataInputStream与DataOutputStream类<br />·PrintStream类<br />·ObjectInputStream与ObjectOutputStream类<br />·字节流与字符流的转换<br />包装类的概念与作用<br />·通过FileOutputStream对象将一个浮点小数写入到文件中,你感觉

liuqingqian001的专栏 669
上一篇: Java.字符编码
下一篇: Java.java程序与其他进程的通信
rcoder
博客等级 码龄16年 37粉丝 58原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值