Java流系列(三):数据流、缓存流

通过视频流实现视频的播放 立即下载

一、数据流

注意:使用data输出流写出数据后,在使用Data输入流读取时一定要保证读取的顺序和写出的顺序一致,否则数据出现错乱。

(一)、使用数据输入流完成数据的读取操作

1.声明数据输入流对象

DataInputStream dataInputStream=null;

2.实例化数据输入流对象

dataInputStream=new DataInputStream(new FileInputStream(path));

3.完成数据的读取操作

byte b=dataInputStream.readByte();
short s=dataInputStream.readShort();
int i=dataInputStream.readInt();
long l=dataInputStream.readLong();
float f=dataInputStream.readFloat();
double d=dataInputStream.readDouble();
char ch=dataInputStream.readChar();
boolean bool=dataInputStream.readBoolean();
String content=dataInputStream.readUTF();
System.out.println("b="+b+",s="+s+",i="+i+",l="+l+",float="+f+",double="+d+",ch="+ch+",bool="+bool+",content="+content);
(二)、使用数据输出流完成对Java八大基本数据类型及其String数据类型的写出功能.

1.声明数据输出流对象

DataOutputStream dataOutputStream=null;

2.实例化数据输出流对象

dataOutputStream=new DataOutputStream(new FileOutputStream(path));

3.将java八大基本数据类型及其String数据类型写出到指定的文件中

dataOutputStream.writeByte(5);
dataOutputStream.writeShort(10);
dataOutputStream.writeInt(15);
dataOutputStream.writeLong(20);
dataOutputStream.writeFloat(25.0f);
dataOutputStream.writeDouble(30.5d);
dataOutputStream.writeChar('a');
dataOutputStream.writeBoolean(false);
dataOutputStream.writeUTF("垂死病中惊坐起,今天还有学Java!");

二、字节缓存流

(一)、使用缓存输入流对象完成对指定文件的读取操作

1.声明缓冲输入流对象

BufferedInputStream bufferedInputStream=null;

2.实例化缓存输入流对象

bufferedInputStream=new BufferedInputStream(new FileInputStream(path));

3.读取数据

byte[] buffer=new byte[10];
int len=0;
while((len=bufferedInputStream.read(buffer))!=-1){
System.out.println(new String(buffer,0,len));
}

4、关闭缓存输入流对象

bufferedInputStream.close();
//将缓存输入流对象垃圾化
bufferedInputStream=null;
(二)、使用缓存输出流对象完成对指定路径中文件的写入操作

1、声明缓冲输出流对象

BufferedOutputStream bufferedOutputStream=null;

2.实例化缓存输出流对象

bufferedOutputStream=new BufferedOutputStream(new FileOutputStream(path));

3.执行写出操作

bufferedOutputStream.write("众里寻他千百度,蓦然回首,那人正在低头学Java".getBytes());
//强制刷新缓冲区
bufferedOutputStream.flush();

4、关闭缓存输出流对象

bufferedOutputStream.close();
//将缓存输出流对象垃圾化
bufferedOutputStream=null;

三、字符缓存流

  • BufferedReader常用的方法: String readLine():一次从输入流中读取一行数据
  • BufferedWriter常用的方法: void newLine():向输出流对象中写出换行符
(一)、使用缓冲输入流对象完成对指定文件的读取操作

1、声明缓冲输入流对象

BufferedReader bufferedReader=null;

2、实例化缓冲输入流对象

bufferedReader=new BufferedReader(new FileReader(path));
String line=null;

3.执行读取操作

bufferedReader.readLine()如果返回值为null表示读取完毕
while((line=bufferedReader.readLine())!=null){
System.out.println(line);
}

4、关闭缓冲输入流对象

bufferedReader.close();
//将缓冲输入流对象垃圾化
bufferedReader=null;
(二)、使用缓存输出流对象完成对指定文件的数据写入功能

1.声明缓冲输出流对象

BufferedWriter bufferedWriter=null;

2.实例化缓冲输出流对象

bufferedWriter=new BufferedWriter(new FileWriter(path));

3.完成写出操作

bufferedWriter.write("人生自古谁无死,来生再来学Java!");
bufferedWriter.newLine();//写出一个换行符,在window中写出\r\n,在Unix中写出\n
bufferedWriter.write("春眠不觉晓,处处学Java!");
bufferedWriter.newLine();
//刷新缓冲区
bufferedWriter.flush();

4、关闭缓存输出流对象

bufferedWriter.close();
//将缓存输出流对象垃圾化
bufferedWriter=null;

四、 完成文本文件的复制操作

将源文件中的数据读取出来写出到目标文件中完成数据的复制

1、声明字符缓冲输入、输出流

BufferedReader bufferedReader=null;
BufferedWriter bufferedWriter=null;

2.实例化缓冲输入流、输出流对象并指定要操作的文件

bufferedReader=new BufferedReader(new FileReader(src));
bufferedWriter=new BufferedWriter(new FileWriter(dest));

3、读取指定文件中的数据,并向指定文件中写入

String line=null;
while((line=bufferedReader.readLine())!=null){
bufferedWriter.write(line);
bufferedWriter.newLine();
}
//刷新缓冲区
bufferedWriter.flush();

4、关闭输入流对象、输出流对象

bufferedReader.close();
//将输入流对象垃圾化
bufferedReader=null;

bufferedWriter.close();
//将输出流对象垃圾化
bufferedWriter=null;
尝试使用CubeMX做stm32开发之九:SYS配置 参考《STM32中文参考手册_V10》,研究CubeMX中有关SYS的配置 阅读详情

相关推荐

手把手教你配置SAP PP供应区域(Supply Area):实现线边仓精准发料与物料流优化

本文详细解析了SAP PP供应区域(Supply Area)的配置方法,帮助企业实现线边仓精准发料与物料流优化。通过三级优先级逻辑和四步配置法,系统可自动识别最优组件来源位置,显著提升生产订单处理效率和库存准确率。文章还提供了典型问题解决方案和性能优化技巧,适用于离散制造和重复制造场景。

weixin_29275257的博客 434

缓冲流、字节数据流

缓冲流: BufferedOutputStream:字节缓冲输出流 在写数据时,一个字节一个字节的写,写的次数明显很多,效率就会变得很低。 缓冲输出流的特点是:在流里维护了一个缓冲区,写字节时,先将字节写入缓冲区,当缓冲区写满时,在一次性的将数据写到文件里。这样就降低了写的次数,提高了效率。 一次缓冲输出流缺失即时性,可以使用flush方法冲刷。 常用构造器: BufferedOutputStr...

zd1204473783的博客 653

树莓派4B:控制步进电机

文章目录准备阶段接线阶段树莓派程序 准备阶段 准备以下物品,淘宝都可以买到: 57步进电机 电源开关(220v转24v,3A,72W) 步进电机驱动器 电源线 电线 杜邦线 树莓派4B一套 具体型号如下: 接线阶段 整体:接线效果如下图 电源开关起220v转24v作用,很好接线,输出24v接入步进电机驱动器 步进电机驱动器的 A+ A- B+ B- 按提示接步进电机四线,步进电机上就会有说...

学习路上的鸭子的博客 1万+

java缓冲流,数据流和对象流

一:缓冲流 1:定义:在内存与硬盘之间创建一个大小合适的缓冲区,当内存和硬盘进行数据访问时,能提高访问硬盘的次数,提高效率。 2:分类:缓冲分为字节缓冲流(BufferedInputStream和BufferedOutputStream)和字符缓冲流(BufferedReader和BufferedWrite)。 3:缓冲流对字节文件拷贝的应用(代码示例):   public class C

大大的馒头 5138

第一章:信号链的精度之战:深入解决电流采样偏差

摘要:本文深入探讨了FOC控制中电流采样偏差问题及其解决方案。电流采样偏差主要来源于偏移误差、增益误差、非线性误差和温漂四大类,其中偏移误差对FOC性能影响最为严重。硬件方面建议采用高精度采样电阻、低失调运放和独立基准电压等设计;软件层面提出了上电自动零点校准、在线实时补偿和模型闭环补偿三种策略。最后介绍了量产自动化校准系统,通过硬件优化和软件补偿相结合,确保每台产品电流采样精度的一致性,为FOC控制奠定坚实基础。

汽车软件开发 602

Python 爬虫实战:爬取 B 站 UP 主投稿数据,分析更新频率与粉丝互动

摘要:本文基于Python技术实现B站UP主投稿数据的自动化爬取与分析。通过解析B站WBI签名机制和API接口,获取UP主视频的标题、播放量、点赞数等核心数据。采用时间序列分析统计更新频率,结合相关性分析挖掘内容特征与粉丝互动的关联。结果显示编程类视频播放量最高,10-20分钟时长的视频表现最佳,投币数与播放量相关性达0.92。文章详细介绍了接口分析、反爬应对等关键技术,为内容创作者优化策略提供数据支持,同时强调遵守平台规范的爬取原则。

2503_91057718的博客 1537

Java基础学习09--IO--其他流(缓存流、转换流、数据流)

目录 1.装饰器模式简介 2.缓冲流 3.转换流 4.数据流 到目前为止,使用的字节流、字符流都是无缓冲的输入、输出流,这就意味着,每次的读、写操作都会交给操作系统来处理。这样的做法可能会对系统的性能造成很大的影响,因为每次操作都可能引发磁盘硬件的读、写或网络的访问,这些磁盘硬件读、写和网络访问会占用大量系统资源,影响效率。而接下来要介绍的一些流就可以很好的解决这一问题。 1.装饰器模式简介 缓冲流、转换流和数据流等,其底层都遵循着一个相同的设计模式——装饰器模式 简单的讲,装饰器模式就

永远热血的少年 361

NVP6324、NVP6188、NVP6158C的区别详解

根据搜索结果,NVP6324、NVP6188、NVP6158C是Nextchip公司推出的不同型号视频处理芯片,主要区别体现在应用场景、功能特性、接口支持及封装规格等方面。如需进一步技术细节(如寄存器配置或开发支持),可参考具体型号的规格书或联系Nextchip代理商。

小灰灰的博客 3004

JAVA基础复习与总结<八> 缓冲流_数据流_对象流_IO总结

缓冲流、数据流以及对象流 一、缓冲流 缓冲流的概念:在读写的时候,对于单字节的读取会造成硬盘的频繁读写,增加访问次数,降低了读取文件的效率。而引入缓冲流之后,就可以将多个字节写入缓冲区,在缓冲区积累之后再输入输出。 注意:缓冲流属于包装流,只能对已有的流进行封装,不能直接关联文件进行操作。 1.1 字节缓冲流 字节缓冲输入/输出流:B...

anqichu9045的博客 321

C++软件调试与异常排查从入门到精通专栏介绍与文章汇总

根据近几年排查软件异常的实践与经验,系统地讲解了C++软件异常常见原因与常用排查方法,以图文并茂的方式给出具体的分析实例,带领大家逐步掌握C++软件异常排查的相关技术与要领。

dvlinker的技术专栏 23万+

目前最强的价格行为技术分析AI!大A也能用!还免费!

有球友推荐了一个历史最强的价格行为技术分析AI工具,使用下来确实很惊艳,解决了 很多AI工具黑盒过程,难以回溯的问题,他的决策过程可解释,提供决策树、诊断结果、原始响应、调试信息和未来走势预期。用户能够看到模型为什么选择“做多、做空或不下单”。会检查置信度、入场条件、盈亏比、结构失效和冷却期。最大的优点不是“预测一定准确”,而是把主观的价格行为分析整理成了可重复、可解释、可校验、可持续跟踪的工程化流程。本文记录本项目在 Windows 上的实际部署与启动方法。

木头大左的博客 76

java的数据流

数据流是一种用于输入输出基本数据类型的工具,它提供了将这些数据类型转换成字节流或字符流的方法,以方便进行输入输出操作。在Java中的数据流指的是在处理输入、输出数据时通过内存缓冲区实现的读取和写入操作。Java中常用的数据流有字节流和字符流,可以根据具体需求选择使用。字节流是 Java 中用于读写二进制数据的一种流,它按照 8 位字节的方式传输数据。字节流主要用于处理二进制数据,例如图像、音频、视频等文件。

m0_74000825的博客 2421

BioEmu 扩散模型加速传统分子动力学(MD)模拟

BioEmu 是一种创新的生成式深度学习系统,通过高效采样和准确预测蛋白质的动态机制,为蛋白质科学和药物设计提供了新的工具。它在多构象采样、MD 模拟拟合和蛋白质稳定性预测方面表现出色,同时显著降低了计算成本。BioEmu 的开发为未来蛋白质动态研究和应用奠定了坚实基础。

weixin_42357472的博客 320

Java数据流、缓存流

一、数据流 注意:使用data输出流写出数据后,在使用Data输入流读取时一定要保证读取的顺序和写出的顺序一致,否则数据出现错乱。 (一)、使用数据输入流完成数据的读取操作 1.声明数据输入流对象 DataInputStream dataInputStream=null; 2.实例化数据输入流对象 dataInputStream=new DataInputStream(new Fi...

随风而逝的博客 554

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

JAVA:IO流 之 节点流与处理流(2)

1. 流的分类 按数据流的方向不同:输入流,输出流。 按处理数据单位不同:字节流,字符流。 (1) 字节流:数据流中最小的数据单元是字节。 (2)字符流:数据流中最小的数据单元是字符, Java中的字符是Unicode编码,一个字符占用两个字节。 按功能不同:节点流,处理流。 (1)程序用于直接操作目标设备所对应的类叫节点流。 (2)程序通过一个间接流类去调用节点流类,以达到更加灵活方...

区块链之美 2万+

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

JAVA:I/O--缓存流和数据流

缓存流 可以使用flush将缓存中的数据立即写入硬盘(不使用flush则会等缓存满了后再读取) 并且可以使用.mkdirs(),创建父类文件夹。 package file; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; public ...

Sword1996的博客 388

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Java IO流详解

原文 Java IO流详解 1.什么是IO Java中I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列。Java的I/O流提供了读写数据的标准方法。任何Java中表示数据源的对象都会提供以数据流的方式读写它的数据的方法。 IO又分为流IO(java.io)和块IO(java.nio) Java.io是大多数面向数据流的输入/输出类的主要软件包。此外,Java也对块传输提供支持,在核心库 java.nio中采用的

ss810540895的博客 1万+

Java实验(6):数据流

目录 数据流 一、内容回顾 (一)Java数据流的分类 (二) Java数据流的功能与使用 二、典型实例 三、实验设计 (一)实验一 (二)实验二 (三)实验三 (四)实验四 数据流 一、内容回顾 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。流的本质是数据传输,Java根据数据传输特性将流抽象为各种类。在这一部分将简要介绍Java数据流的分类以及常见Java数据流的功能和用法 。 (一)Java数据流的分类 java.io包中定义了多个流类型(类或抽象类

Blog of Mark 2342

java i o 缓冲_JAVA:I/O--缓存流和数据流

缓存流可以使用flush将缓存中的数据立即写入硬盘(不使用flush则会等缓存满了后再读取) 并且可以使用.mkdirs(),创建父类文件夹。package file;import java.io.File;import java.io.FileWriter;import java.io.IOException;import java.io.PrintWriter;public class Tes...

weixin_39862716的博客 105

一、I/O操作(缓存流,数据流,对象流)

一、缓存流   以介质是硬盘为例子说明,字节流和字符流的缺点: 每次读写的时候,都会访问硬盘,如果读写频率比较高的时候,性能不佳。为了解决问题,采用缓存流。   缓存流在读取的时候,会一次性读较多的数据到缓存中,以后每一次的读取,都是在缓存中访问,直到缓存中的数据读取完毕,再到硬盘中区读取。   缓存流在写入数据的时候,会先把数据写入到缓存区,直到缓存区达到一定的量,才把这些数据...

dengbangtui3521的博客 302

Java流系列(一):流的分类

File:只能对文件本身的信息进行操作,比如:获取文件的大小等,但无法对文件中的内容进行操作. 如果想对文件中的内容进行操作,则必须借助于流的概念. 一、流:一串流动的数据,以先进先出的方式发送信息的通道. 流的分类: 1:按照流的方向(参考点永远是自己的程序)分: 输入流(InputStream):只能向其中读取数据的流. 输出流(OutputStream):只能向其中写出数据的流. ...

zhoufeng的博客 4261

java- I/O(字节流、字符流、缓存流、数据流、对象流)

I/O 先看个思维导图呗 文件对象 1.定义:文件和文件夹都是用File代表。 2.创建一个文件对象 使用绝对路径或者相对路径创建File对象。 package file; import java.io.File; public class TestFile { public static void main(String[] args) { // 绝对路径 ...

xiaoguxin的博客 1154

java数据流

Java数据流 Java数据流分为两种:字节流(Byte)和字符流(Character) 标准流 字节流:以8位为为单位对二进制数据进行操作对数据不进行转换。这些类都是InputStream和OutputStream的子类. FileInputStream(File file),FileOutputStream(File file) BufferInputStream(FileInputStre...

xuxwg的博客 7360

Java 流-打印流&数据流

Java 流-打印流&数据流 PrintStream 1.System.out 和 System.err 都是PrintStream的实例 2.PrintStream的方法都不用抛出IOException异常 3.打印流无需类型转换,自动转成String类型,但缓冲流需要类型转换(使用缓冲流只能写入字符串) 4.使用打印流时会自动转成String类型,会失去数据原有的类型 import ...

weixin_45778981的博客 305

JAVA系列:IO流

1、字节流是原生的操作,字符流是处理之后的操作。和Reader的子类。和Writer的子类。

zhengguofeng0328的博客 984

Java------缓存流的应用

Java------缓存流的应用 由于使用子节流或字符流的效率不高,因此实际应用中使用缓存流来读写文件。缓存流分为字节缓存流和字符缓存流 Java------数据流的应用(子节流和字符流) 1.缓存字节流: 缓存字节流包括字节的输入和输出流:BufferedInputStream和BufferedOutputStream两种 1.1缓存字节输入流的创建: File file=new File("lianxi.txt"); FileInputStream re1=new FileInputStream(fi

qq_52924791的博客 2631
上一篇: Java流系列(二):字节流、字符流
下一篇: Java流系列(四):对象流、内存流
azhoufeng
博客等级 码龄10年 10粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值