IO流【重点】

从“跳变”到“连续”:深入理解霍尔传感器插值与PLL角度估算的优劣与选择 本文深入解析霍尔传感器角度估算技术,对比线性插值法和锁相环(PLL)跟踪法的优劣,为电机控制领域的工程师提供实用指南。通过STM32F407和CubeMX的实例,详细探讨两种方法的实现细节、性能对比及优化策略,帮助在不同应用场景下做出最优选择。 阅读详情

需求:上传和下载等

I  是  input 输入

O  是  output   输出

电脑上的文件,在进行读取和存储的时候,都是以流的形式进行操作的

流的概念是比较抽象的

1.1缓冲的概念

看视频有点卡?暂停一下 这时候就是在缓冲

缓冲其实就是为了提高读取和存储的效率的

计算机通过cpu读取硬盘的数据,在java中可以加上缓冲的概念,每次读取具体的缓冲值。可以提高效率

1.2IO流

从磁盘(c盘)读取数据到内存(java代码)以内存java代码做参照物

1.txt===>java代码(输出出来) 输入流:

input : 场景使用 从磁盘的c:/aaa/1.txt文件中 读取数据到内存中(java代码)

字节输入流:

字符输入流:

从内存(java代码 String="狗蛋")写入数据到 磁盘(c盘 1.txt)

输出流:

output: 从内存(String str = "一个字符串数据") 写入到磁盘的c:/aaa/1.txt文件中

字节输出流:

字符输出流:

参照物是 内存(java代码)

1.2.1字节输入流

FileInputStream

可以将磁盘上面文件的内容读取到java代码中

package com.shuru;
import java.io.*;
public class Demo01 {
    public static void main(String[] args) throws IOException {
        //输入流 将磁盘上面的内容读取到java代码中
        //创建一个File对象,把要读取的文件抽象话
        File file = new File("d:/aaa/HelloWored.txt");
        //创建字节输入流的核心类
        FileInputStream fis = new FileInputStream(file);
        //添加一个缓冲buf方法
        BufferedInputStream bis = new BufferedInputStream(fis);
        //添加缓冲数组   字节是byte
        byte[] buf = new byte[4*1024];
        //读取并  创建一个停止条件
        int length;
        while ((length = bis.read(buf)) != -1){
            System.out.println(new String(buf , 0 , length));
        }
        bis.close();
        fis.close();
    }
}

1.2.2字节输出流

FileoutputStream

可以将java代码中的一个字符串写入到磁盘一个txt文件中

package com.shuru;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
public class Demo03 {
    public static void main(String[] args) throws IOException {
        //创建输出文件对象
        File file = new File("d:/bbb/2.txt");
        //创建输出流核心方法
        FileOutputStream fos = new FileOutputStream(file);
        //创建缓冲方法
        BufferedOutputStream bos = new BufferedOutputStream(fos);
        //声明一个字符串
        String str = "wasdzxcf";
        bos.write(str.getBytes());
        bos.close();
        fos.close();
    }
}

案例:

d:/aaa/1313k.wmv文件 复制到d:/bbb下面

package com.shuru;
import java.io.*;
public class Demo02 {
    public static void main(String[] args) throws IOException {
        //从磁盘输入到java代码 创建缓冲输入流对象
        BufferedInputStream bis = new BufferedInputStream(new 
                FileInputStream(new File("d:/aaa/1313k.wmv")));
        //从java输出到磁盘 创建缓冲输出流对象
        BufferedOutputStream bos = new BufferedOutputStream(new 
                FileOutputStream(new File("d:/bbb/1313k.wmv")));
        //准备一个缓冲数组
        byte[] buf = new byte[1080];
        int length;
        while ((length = bis.read(buf)) != -1 ){
            bos.write(buf , 0 ,length);
        }
        bos.close();
        bis.close();
    }
}

1.2.3字符输入流【非重点】

FileReader

将磁盘中的文件的内容读取到Java代码中

阅读字符文件的便利类

FileReader是用于读取字符流。 要读取原始字节流(图片 音频 视频),请考虑使用FileInputStream

FileReader是从字节流到字符流的桥:它读取字节,并使用指定的charset将其解码为字符 。

1.2.4字符输出流【非重点】

FileWriter

场景: Java中有一个字符串然后写入到磁盘的一个文件中

总结: 1.输入流和输出流的功能 输入流: 从磁盘到内存(Java代码) 输出流: 从内存(java 代码)到磁盘 2.输入流 分为两种: 字节输入流 FileInputSrteam 字符输入流 FileReader 核心方法: read

        关于效率问题,他们两个有对应的缓冲流
            FileInputSrteam 对应的BufferedInputStream
            FileReader 对应的 BufferedReader
3.输出流
    分为两种:
        字节输出流:
            FileOutputStream
        字符输出流:
            FileWriter
                核心的方法 write
        关于效率问题,他们两个有对应的缓冲流
        FileOutputStream对应的缓冲流 BufferedOutputStream 
        FileWriter对应缓冲流   BufferedWriter
4.记住一句话 用字节流    

1.3序列化和反序列化

新建类然后创建对象,对对象进行属性赋值 使对象真实存在,然后通过流将对象存入本地磁盘上面, 这就是序列化。

本地磁盘上面存有对象的数据,在通过流读取到java代码上变成对象, 这就是反序列化。

序列化和反序列化可以提高对象的 持久可操作性

从内存到磁盘 序列化 输出流 ObjectOutputStream write

package com.ol;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.io.Serializable;
class Person implements Serializable {
    String name;
    int age;
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
    public void eat(){
        System.out.println("正在吃饭");
    }
}
public class XuLie01 {
    public static void main(String[] args) throws IOException {
        Person per = new Person("赖柳" , 18);
        FileOutputStream fos = new FileOutputStream("d:/aaa/5.txt");
        ObjectOutputStream oos = new ObjectOutputStream(fos);
        oos.writeObject(per);
        oos.close();
        fos.close();
    }
}

从磁盘到内存 反序列化 输入流 ObjectInputStream read

package com.ol;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
public class XuLie02 {
    public static void main(String[] args) throws IOException, ClassNotFoundException {
        //反序列化
        FileInputStream fis = new FileInputStream("d:/aaa/5.txt");
        ObjectInputStream ois = new ObjectInputStream(fis);
        //ois调用并写入并强转为Person对象并赋值给per2
        Person per2 = (Person)ois.readObject();
        System.out.println(per2.name);
        System.out.println(per2.age);
    }
}

注意事项:

一个类的对象想要序列化成功,必须满足两个条件:

该类必须实现 java.io.Serializable 接口。

该类的所有属性必须是可序列化的。如果有一个属性不是可序列话的,则该属性必须注明是短暂的

智能网联汽车云控系统核心解析:车云数据交互协议设计与实践 本文深入解析了智能网联汽车云控系统的核心——车云数据交互协议的设计与实践。文章围绕“说什么”、“怎么说”及异常处理三大核心问题,详细阐述了二进制与结构体数据类型定义、TCP/UDP双通道传输机制、通用报文格式以及典型交互流程(如GLOSA车速引导),并分享了时间同步、坐标系定义等关键实战经验与避坑指南,为构建高效、可靠、安全的车云“神经系统”提供专业指导。 阅读详情

相关推荐

NXP(imx8qxp)系列DDR校准以及android镜像烧录

文章目录一、 不得不吐槽以下nxp的这个代码镜像烧写的过程,做得太开源了,导致镜像根本烧录不进去,实属令人头痛。 一、

永不秃头的程序员的博客 5991

IO流第十课,重点流总结

二手农民的学习博客 379

四路独立可控供电USB 2.0智能集线器设计

USB集线器是连接外设的基础接口设备,其供电管理能力直接影响系统可靠性与远程运维效率。传统HUB仅提供固定VBUS输出,缺乏端口级电源控制机制,难以实现软复位、故障隔离与功耗优化。本方案基于USB 2.0协议透明转发原理,通过硬件级电子负载开关(如MT9700)与独立MCU(ESP32-C3)协同,构建具备四路独立限流(680mA)、纳秒级通断响应、WiFi/MQTT远程管控能力的智能供电架构。技术价值体现在协议无侵入、控制域与数据域物理隔离、默认安全上电策略等工程实践要点,广泛适用于工业远程调试、实验室设

weixin_36289742的博客 193

IO流重点知识

IO流 IO流定义:对文件的输入和输出。从内存中写入到硬盘,就是输出流;从硬盘写到内存里面,就是输入流。 字节流 以字节为单位进入输入输出流;一般操作英文、图片、视频。 字节输入流 //依赖字节流创建流,设置编码格式 package com.demo.day02; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; imp

Jay_hmj的博客 346

win2012 r2 + IIS8.5 伪静态设置脚本映射

win2012 r2 + IIS8.5 伪静态设置脚本映射,网站用的.net fromwork 2.0 ,应用程序池设置了32位支持

xueking87的专栏 3240

zabbix 监控EMC存储

经过搜索,找到了脚本地址,该项目应该是模板原作者创建的,该项目也有zabbix模板,和上面的应该是相同的,我用的是上面的模板。./unity_get_state.py --api_ip='X.X.X.X' --api_port='443' --api_user='zabbix' --api_password='PASSWORD' --storage_name="zabbix web前端配置的主机名" --discovery。修改权限,给zabbix用户执行权限,模板调用时以zabbix用户执行。

wangyfde的专栏 3755

Java IO流面试重点问题汇总

在面试过程中,Java IO流的面试常见问题可能包括IO流的读取和写入速度、缓冲区技术的重要性、异常处理等方面的问题。例如,关于IO流的读取和写入速度的问题,我们可以说明通过合理的设计和使用缓冲区技术可以提高读写效率;本文将针对标题《技术总结:Java IO流面试重点问题汇总》进行深入探讨,帮助求职者更好地准备面试,掌握Java IO流面试的重点问题。它包括文件流、网络流、数据库流等多种类型,用于读取、写入、处理文件、网络数据等。Java IO流的常用类型包括文件流、网络流等。1. 什么是IO流?

qq_35974860的博客 72

基于TDOA的chan算法(定位算法)

Chan算法原理 TDOA(TDOA,the time differences of arrival,到达时间差),Chan算法是TDOA定位方法的一个很好用的方法。 Chan算法是非递归双曲线方程组解法,具有解析表达式解,主要特点是:在测量误差服从理想高斯分布时,它的定位精度高、计算量小,并且可以通过增加已确定点的数量来提高算法精度。 该算法的推导前提是基于测量误差为零均值高斯随机变量,对于实际环境中误差较大的测量值,比如在有非视距误差的环境下,该算法的性能会有显著下降。二维情况下,可分为只有三个点参与定

优快云不再更新 2万+

Java开发重点 IO流

Java开发重点:IO流一、流的概念和分类1.概念2.流的分类:3.字节输入/输出流(抽象、父类)4.文件字节输入/输出流(子类)5.字节过滤流(1)BufferedOutputStream/BufferedInputStream(2)PrintStream(输出流)(3)ObjectOutputStream/ObjectInputStream(重点:对象序列化):6.File类7.Reader/...

zxwwantlearnjava的博客 632

AMBA-AXI and ACE协议详解(十)

本章介绍了ACE协议中的Barrier事务机制,包括内存屏障和同步屏障两种类型。

Crazzy_M的博客 613

【异常】DeepSeek API HTTP 401 认证失败错误完整排查与解决方案

摘要:本文针对DeepSeek API开发中的HTTP 401认证失败错误进行深度解析,指出该错误属于不可重试的认证类问题。文章首先拆解错误日志关键字段,区分401与其他API错误的本质差异。随后提供优先级排序的全链路解决方案:1)检查API密钥有效性;2)规范请求头认证格式;3)排查账户权限状态;4)验证请求环境配置。最后建议通过新建测试密钥、使用官方示例代码或联系技术支持进行兜底处理。全文采用技术脱敏处理,为开发者提供系统性的401错误排查指南。(149字)

奶爸的编程之路,也就一周冷个三天 1529

java学习笔记:IO流之IO流总结(重点)

java学习笔记:IO流之IO流总结(重点) 十一、IO流总结(重点) 1.字节流 FileInputStream fis = new FileInputStream("a.txt"); FileOutputStream fos = new FileOutputStream("b.txt"); 2.字节缓冲流 BufferedInputStream bis = new Buffer...

黄道婆的专栏 390

1 初识智能化测试

非常感谢您可以和我一起来聊一聊智能化测试的一些事。智能化测试是一个新鲜又老旧的问题,说新鲜是因为很多人当听到智能化测试都会联想到人工智能、机器学习、深度学习等高大上的技术,很多时候觉得离我们的实际工作还很远;说老旧,是因为智能化测试的一些技术的发展在行业里面已经很久了,例如符号执行、静态分析等技术已经有很长的历史了。近些年,随着测试技术的的飞速发展,智能化测试也有了越来越多的实践,优秀的开源项目慢慢的被行业推行并且落地。那么在这里我们就一起来聊聊智能化测试以及智能化测试好的思路、实践、方法以及技术落地过程。

Criss@陈磊 2626

io流总重点流

字节流 InputStream OutputStream FileInputString FileOutputStream 字符流 Reader Writer FileRead ...

qq_43009508的博客 177

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Java的IO流重点知识点

1、流按照方向来分,分为几种?相对于什么而言?按照流传输数据的类型来分,分为几种? 方向 输入流(input) 输出流(output) 类型 字节流(InputStream/OutputSteam) 字符流(Reader/Writer) 功能(数据处理方式) 节点流(所有基础流) 缓冲流(Buffered开头的) 2、流相关的操作类在哪个包中?字节流和字符流的父类是什么? 操作类在java.io包下,字节输入流的父类是InputStream,字节输出流的父类是OutputSteam,字

这个人很懒,懒得CV 280

Devexpress16.2.6破解工具

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

Java基础_18File类【重点】_递归_IO流【重点】

只能借助于IO流操作,读取文件,图片,音频,视频等文件。获取当前文件夹下面所有的文件和文件夹的对象,返回值是File数组。案例: 从磁盘的C:/aaa/1.txt文件 将数据读取到Java代码中赋值给一个变量。获取当前文件夹下面所有的文件和文件夹的字符串。咱们电脑上面所有的文件(文本,图片,音频,视频)等都是可以进行读和写的!Io流在进行文件读和写的时候,其实是一字节一字节进行读和写的。File类sun公司封装好的一个类,专门处理磁盘的文件和文件夹的类。获取文件夹或者文件的名字。

近日终于有时间好好回顾下一些作品了,有帮助的好好看就行 1977

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Java中的重点概念_Java中的IO流,重点概念梳理

Java 中有几种类型的流按照流的方向:输入流(inputStream)和输出流(outputStream)。按照实现功能分:节点流(可以从或向一个特定的地方(节点)读写数据。如 FileReader)和处理流(是对一个 已存在的流的连接和封装,通过所封装的流的功能调用实现数据读写。如 BufferedReader。处理流的构造方法总是要 带一个其他的流对象做参数。一个流对象经过其他流的多次包装,...

weixin_35943776的博客 144

Java基础_19 IO流【重点】

需求: 从磁盘上面某一个1.txt文件,读取数据到内存 (使用的字节输入流)Java 提供了一种对象序列化的机制,该机制中,一个对象可以被表示为一个字节序列。需求: c:/aaa/1.mp4 复制到 c:/bbb/2.mp4。可以将一个对象以一个字节序列的形式存到本地磁盘上面做持久化的操作!案例: 将一个字符串 我欲乘风归去 写入到c:/aaa/3.txt。图片 音频 视频 等都必须使用原始的字节流,无法使用字符流。需求: 将Java代码中某一个字符串数据写入到磁盘的4.txt。

近日终于有时间好好回顾下一些作品了,有帮助的好好看就行 841

java重点!IO流与文件操作

深入理解 java IO流 输入input,输出output 本文使用junit单元测试,如果你对这个不太了解,建议先去学习一下 文章目录深入理解 java IO流1.File类1.1File类是什么1.2File类功能1.3如何创建File类的实例1.4File类方法1.5File类方法-21.6File类方法-32. 流的分类2.1 按照数据单位分类2.2 按照角色不同分类2.3 IO流体系3.流的使用案例3.1FileReader读入数据的基本操作3.2FileWriter基本操作3.3利用FileW

fffffyp的博客 362

Java基础——Java重点基础之IO流(一)

一,IO流概述及其分类 1.概念 IO流用来处理设备之间的数据传输Java对数据的操作是通过流的方式Java用于操作流的类都在IO包中流按流向分为两种:输入流,输出流。流按操作类型分为两种: 字节流 : 字节流可以操作任何数据,因为在计算机中任何数据都是以字节的形式存储的字符

梦想家Eva的专栏 390

IO流的原理(重点)

Richard_666的博客 667

Java基础——Java重点基础之IO流(三)

一,序列流 1.什么是序列流 序列流可以把多个字节输入流整合成一个, 从序列流中读取数据时, 将从被整合的第一个流开始读, 读完一个之后继续读第二个, 以此类推. 2.使用方式 整合两个: SequenceInputStream(InputStream, Input

梦想家Eva的专栏 337

178_08_IO流_流概述_画图分析流的本质_重点掌握的流

178_08_IO流_流概述_画图分析流的本质_重点掌握的流

zhangshengsky的博客 273

java基础之IO流整体认知(重点)

使用字节流来书写图片 BufferReader、BufferWriter采用缓冲方式进行读写的 包含readLine 读取一个文本行 FileInputStream、FileOutputStream用于读写图片

Richard_666的博客 245

Flutter在鸿蒙上接入SignalR:实时通信适配实战与踩坑指南

在移动应用开发中,实时通信是高频需求。WebSocket虽常见,但面对复杂业务逻辑时,需要自行处理连接协商、自动重连、消息路由等底层细节。SignalR作为成熟的实时通信框架,提供了Hub双向RPC、传输自动降级等能力,显著降低开发成本。当Flutter跨端应用需要适配鸿蒙Next/OpenHarmony时,如何将SignalR能力无缝迁移成为工程实践难点。本文基于实际项目,深入讲解在OpenHarmony上集成Flutter与signalr_core的完整方案,涵盖连接参数配置、事件分发、自动重连、TLS

weixin_34319817的博客 298

java基础之IO流(重点)

最想做什么:java打开文件、java读取文件、java写这个文件 FileWriter、FileReader对字符串进行读写  

Richard_666的博客 152
上一篇: Map集合【重点】
下一篇: 进程和线程
Java_dacainiao
博客等级 码龄4年 1粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值