IO流-字节的学习

星座SAR动目标检测(GMTI) 参考代码 星座SAR动目标检测 www.youwenfan.com/contentcsg/52399.html。 阅读详情

IO

  • 说到IO,脑海里更是模糊一片。什么 input output 还有stream reader 之类的什么鬼。这几天终于把它搞明白了。

    1.概念
    流流动 流向从一端移动到另一端 源头与目的地
    程序 与文件、数组、 网络、数据库 ,依程序为中心
    2.io流分流
    1.流向,输出流与输出流
    2.数据:字节流 二进制,可以一切文件 包括纯文本 doc 音频 、视频等等
    字符流:文件文本,只能处理纯文本
    3。功能:节点:包裹源头的
    处理流:增强功能,提供性能
    三。字节流与字符流(重点)
    1.字节流
    输入流 inputStream read +close FileInputStream
    输出流 outputstream write +flush +close FileOutputSteam
    2.字符流
    输入流 reader read +close FileReader()
    输入流 writier write + flush + close FileWiter

四。操作
1.距离 :搬家为例 -->读取文件
1.关联房子 -- 建立与文件练习
2.选择搬家 --选择对应流
3.搬家 --读取|写出
a卡车大小 --数组大小
b.运输 --读取、写出
4。打发over --释放资源
2.操作
1.建立练习
2.选择流
3.操作 数组大小reader、witer
4.close

------上面这些是上课看的比较乱

总结一下
文件的移动过程以流形式存在,一般是两种的形式,一种是字符流,比如我们的文本对象txt,另外是字节流 比如我们的图片,音频之类的,总不可能是文本的形式给我们看吧。

相应的操作就分为两种,一种是字节流的形式对文件进行操作
设计到的类就是

  输入: File  | InputStream    | FileInputStream 
  输入: File  | OutputStream   | FileOutputStream 

这三种类。

它们的操作步骤如下代码将进行展示

package cn.hjm.test;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
/**
 * 读取文件
 * @author hjm
*/
public class DemoFile01 {
public static void main(String[] args) {
    //创建file对象
    File file = new File("C:\\Users\\hjm\\Desktop\\有趣的句子.txt");
    
    InputStream is =null;
    try {
        //创建流
        is =new FileInputStream(file);
        //创建数组大小
        byte[] b = new byte[3];
        //规定字节大小
        int len=0;
        try {
            while(-1!=(len=is.read(b))){ //当读不到数据的时候为-1
                String str = new String(b,0,len); //构建字符串
                System.out.print(str);
            }
        } catch (IOException e) {
            
            e.printStackTrace();
        }
    } catch (FileNotFoundException e) {
        System.out.println("文件查找失败");
        e.printStackTrace();
    }finally{
        while(null!=is){ //该流存在的时候,关闭它
            try {
                is.close();
            } catch (IOException e) {
                
                e.printStackTrace();
                System.out.println("关闭输入流");
            }
        }
    }
}
}

 package cn.hjm.test;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;

/**
 * 写入文件
   * @author hjm
 *
 */
public class DemoFile02 {

public static void main(String[] args) {
    File file = new File("C:\\Users\\hjm\\Desktop\\有趣的句子.txt");
    OutputStream os = null;
    
    try {
        os = new FileOutputStream(file,true);
        String str ="hello world\r\n";
        byte[] b = str.getBytes();
        try {
            os.write(b);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        try {
            os.flush();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }   
        
    } catch (FileNotFoundException e) {
        e.printStackTrace();
        System.out.println("文件未找到!");
    }
    

}

}

----如何将文件进行拷贝,其实就是一端的流上车到另一端流的下车过车
我用比较通俗易懂的说法说明一下
有个源文件 要进行拷贝,这个就好比是上车的人,byte[] 就是那辆车,这辆车起初没人 len= 0; 后面陆续有人上车了,就是字节陆续传输上来了,然后 在开的过程中,有人不断下车 就是写出 ,知道车上的人没有了为止。
最后呢? 快到站的时候,我们要叫还没下车的赶紧下车,就要flush()一下。因为我们要到站了,最后呢,把前门 ,后门都关闭 。

代码如下

  package cn.hjm.test;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

public class CopyFile {

public static void main(String[] args) throws IOException {
    
    //1.建立联系 源头文件(真实存在并且是文件不能是文件夹)和目的文件
    File file = new File("C:\\Users\\hjm\\Desktop\\a.png");
    //2.目标文件
    File dest = new File("C:\\Users\\hjm\\Desktop\\b.png");
    
    //3.选择流,输入和输出流
    InputStream is = new FileInputStream(file);
    OutputStream os = new FileOutputStream(dest);
    
    //4.准备车子
    byte[] b = new byte[1024];
    int len=0; //假装车上没人
    
    //开始上车
    try {
        while(-1!=(len=is.read(b))){ //当车子没有满的话继续上车,车子一边开就一边有人下车
            os.write(b, 0, len); //从0开始慢慢把人放下车去,有多少人放多少人
        }
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }finally{
        os.flush();//还有不想下车的赶紧催下车
        is.close();//本趟车前面要关闭了
        os.close();//本趟车后门要准备关闭了
    }
    
}

}

最后我将这个进行了封装,做成了一个工具类
FileUtil.java
传送门[FileUtil-文件拷贝]

128、点云配准与ICP:经典配准算法与深度学习配准 上周调试一台双臂协作机器人,左手持结构光相机扫描桌面上的随机堆叠工件,右手准备执行抓取。问题出在“对齐”这一步——相机扫描得到的点云和CAD模型点云之间差了大约15度的旋转,导致抓取姿态计算出来直接怼到桌面上。我第一反应是“ICP跑一下不就行了”,结果跑了三分钟,误差纹丝不动,甚至越迭代越发散。后来查了日志才发现,初始位姿给得太离谱,ICP直接掉进了局部最优。这个场景太典型了——很多人以为点云配准就是调个ICP库函数,实际工程里坑比想象中多得多。今天这篇笔记,咱们把点云配准这件事从头捋一遍。 阅读详情

相关推荐

SRAM:SRAM入门指南与工作原理

SRAM(Static Random Access Memory),即静态随机存取存储器,是一种能够读取和写入数据的内存(RAM)。它使用由晶体管组成的触发器来存储数据,只要有电源供应,数据就可以稳定地保存。与动态随机存取存储器(DRAM)不同,SRAM 不需要周期性地刷新来保持数据。

weixin_42896509的博客 1万+

读取文件的工具类

读取文件的工具类: public class FileUtil { public String readToString(String fileName) { String encoding = "UTF-8"; File file = new File(fileName); Long filelength = file.length...

u012620150的专栏 1505

Veristand自动化测试:Stimulus Profile Editor实战指南

本文是Veristand自动化测试中Stimulus Profile Editor的实战指南。详细介绍了如何利用这一图形化工具,将繁琐的手动测试流程转化为一键自动执行的“剧本”,涵盖工程控制、信号编程、预制动作调用等核心功能,并通过手把手案例演示了构建首个自动化测试脚本的全过程,帮助测试工程师显著提升效率与可靠性。

dd012的博客 493

JavaSE基础(124) IO流读写乱码问题(字符编码)

为什么IO流读写中可能会出现乱码问题?? ①编码和解码规则不一致 ②这个字符编码不支持某种语言(ex:中文) 那我们应该怎么去尽可能的避免出现乱码的情况呢?? 1.编码 : String ---> byte[] String中有对应的方法: ①:byte[] getBytes() : 使用平台的默认字符集将此 String 编码为 byte 序列 ②:b...

郑清 1万+

保姆级教程:用Docker一键部署vLLM大模型推理服务(附常见报错解决方案)

本文提供了一份详细的Docker化vLLM大模型推理服务部署指南,涵盖从环境准备到性能调优的全流程。通过容器化技术解决大语言模型部署中的显存利用率、吞吐量等核心问题,并附常见报错解决方案,帮助开发者快速构建高效、可扩展的AI推理服务。

weixin_29248313的博客 492

XIAO ESP32S3 Sense摄像头与麦克风实战:从硬件连接到AI语音视觉项目

本文详细介绍了如何使用Seeed Studio XIAO ESP32S3 Sense开发板进行AI语音视觉项目开发。从硬件连接到Arduino环境搭建,再到摄像头拍照、视频流传输、麦克风录音等实战操作,最后引导读者探索基于TensorFlow Lite Micro的语音唤醒和SenseCraft AI的图像识别等AI应用,为物联网和边缘AI项目提供了完整的入门指南。

xray4的博客 1024

Java IO流学习——字节流

Java IO流学习——字节流

weixin_49561506的博客 1090

LVGL core disp显示设计(lv_disp.c)

lv_disp.c当前显示页面的配置scr_act在原始的LVGL是以screen的概念存在,但我们还是习惯叫它为一个页面提供获取top_layer、sys_layer、prev_scr图层接口配置主题管理默认的主题管理是递归查找的,实际项目中因此页面的复杂性,虽然也兼容了此主题管理的方案,但还是推荐使用单页面自行管理主题的方案壁纸设置多页面切换的动画支持计算无用户操作时间清理显示缓存。

Bigan(安)的博客 2331

IO流学习--字节流

output:写出数据,将程序保存到本地文件中。程序--->文件input:读取数据,本地文件加载到程序中。文件--->程序IO流中是以程序为参照物在读写,是程序在读取文件中的数据,是程序在往文件中写出数据,或者说是内存也是可以的,因为程序运行在内存中的。

qq_58158407的博客 824

英伟达(NVIDIA) 显卡型号、计算能力(CC)、CUDA版本、PyTorch版本 对照表

本文全面梳理NVIDIA显卡型号与其计算能力(CC)的对应关系,并详解各代CUDA版本对不同架构的支持与弃用情况,帮助用户判断硬件兼容性。同时,结合PyTorch官方发布版本,整理其支持的CUDA版本清单,指导开发者合理选择深度学习环境配置。涵盖从Jetson嵌入式设备到H100、Blackwell等最新旗舰显卡,是一份实用的AI开发环境搭建参考指南。

寒水馨 · 轻量级技术文档 · hanshuixin.org 4890

CANoe/CAPL ,远程邮件通知

CANoe/CAPL ,远程邮件通知

蚂蚁小兵 3036

JAVA学习小计之IO流01-字节流篇

字节流字符流。和。其他设备内存内存其他设备上面这四个类衍生出一系列类,它们是最根本的,但它们都是抽象类,需要其子类来实现其方法。PS:我们必须明确一点的是,一切文件数据(文本、图片、视频等)在存储时,都是以二进制数字的形式保存,都一个一个的字节,那么传输时一样如此。所以,字节流可以传输任意文件数据。在操作流的时候,我们要时刻明确,无论使用什么样的流对象,底层传输的始终为二进制数据。

sleeplover_soda的博客 1077

Devexpress16.2.6破解工具

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

IO流基础输入输出流字节字符流,含文件复制综合案例IO流基础学习

IO流基础输入输出流,含文件复制综合案例 **流的分类**1.根据传输处理的单位:字节流 字符流2.根据流的方向:输入流 输出流*字节输入流** InputStream--抽象父级,无法实例化FileInputStream--操作文件的字节输入流,构造要:File/路径

m0_61393256的博客 249

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

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

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

IO流(学习Java第24天)(字节流、IO流中的异常处理、文件复制、字节缓冲流)

目录 一.IO流概述 二.IO的分类 三.字节流 四.IO流中的异常处理 五.文件复制 七.字节缓冲流 一.IO流概述 生活中,你肯定经历过这样的场景。当你编辑一个文本文件,忘记了ctrl+s ,可能文件就白白编辑了。当你电脑上插入一个U盘,可以把一个视频,拷贝到你的电脑硬盘里。那么数据都是在哪些设备上的呢?U盘、内存、硬盘、外接设备等等。 我们把这种数据的传输,可以看做是一种数据的流动,按照流动的方向,以内存为基准,分为输入input和输出output,即流向内存是输入流,流出内存的

weixin_42279465的博客 554

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

【学习笔记】Java IO流之字节流和字符流知识点整理

在try-catch-finally块外声明变量并初始化为null,try块内初始化、读写流,在finally块中关闭流声明输入输出流变量。文件复制示例:将一个文件中的内容复制到另一个文件中,并使用缓存流提高读写效率。在try块中定义输入输出流对象,则会在流的读写操作结束之后由系统自动关闭流。

小冷coding的博客 603

【Java学习笔记】IO流之字节流

1.IO流的概述 IO流用来处理设备之间的数据传输,例如:上传文件和下载文件 Java对数据的操作是通过流的方式 Java用于操作流的对象都在IO包中 2.IO流分类 2.1 按照数据流向 输入流:读取数据 输出流:写入数据 2.2 按照数据类型 字节流 字符流 什么情况下选择字节流?又在哪种情况下选择字符流呢? 如果数据所在的文件通过windows自带的记事本打开并能读懂里面的...

我们仨 243

IO流学习:字节流

java的流中:以二进制读取的流主要有: 1.InputStream/OutputStream: 这是基类,它们是抽象类。 2.FileInputStream/FileOutputStream: 输入源和输出目标是文件的流。 3.ByteArrayInputStream/ByteArrayOutputStream: 输入源和输出目标是字节数组的流。 4.DataInputStream/DataOu...

weixin_44711004的博客 272

Java学习总结-io流-字节流

任何文件的底层都是字节,把字节做复制,是一字不漏的转移全部字节,只要复制后的文件格式一致就没有问题。FlieOutputStream(文件字节输出流):内存输出数据到磁盘中。由于不同格式编码长度,每次读取一个或几个字节,都有可能出现乱码。所以官方提供了,一次性读入全部字节,以数组的形式的返回。会自动调用其close()方法,完成对资源的释放!FlieInputStream(文件字节输入流)是什么:磁盘以字节的形式输入到内存中。

JackmoodCC的博客 247

快来学习io流之一 字节流

流 Stream 网络中,不同计算机之间,软件之间,传输的字节码数据信息。 方向来看: 输入流:由文件源向本地系统传输数据信息,叫做输入流。 输出流:由本地系统向目标系统传输数据信息,叫做输出流。 读取数据: read 写出数据:write 数据方向看: 字节流 FileinputStream FileoutputStream 字符流 FileReader Fi...

AHincsdn的博客 205

IO流学习之字节流(一)

IO流(Input/Output) 简介: 流是一种抽象概念,它代表了数据的无结构化传递。按照流的方式进行输入输出,数据被当成无结构的字节序或字符序列。从流中取得数据的操作称为提取操作,而向流中添加数据的操作称为插入操作。用来进行输入输出操作的流就称为IO流。换句话说,IO流就是以流的方式进行输入输出。 IO技术实际上就是让数据在电脑内存或程序系统和硬件(硬盘,内存卡)之间转换的技术。 分类:...

bernardGao94的博客 113

IO流学习笔记--字节流

io流的字节流笔记

IT_bird_flay的博客 171

Java学习-IO流-字节缓冲流

Java学习-IO流-字节缓冲流

weixin_45876155的博客 397

Java学习记录|IO流之字节流

IO数据流: 字节流:操作二进制数据,可读取任意类型数据 抽象基类:InputStream(输入流)、OutputStream(输出流) 字符流:操作文本数据,只可以读文本数据(也可以用字节流操作) 抽象基类:Reader( Writer 把文件从硬盘读取到内存里面–>读取–>读入–>输入–>Input–>输入流 把内存里面的数据保存到硬盘上–>存储–&gt...

linanali0606的博客 212

头歌 Java IO 答案 增加章节java学习-Java输入输出之字节缓冲IO流之复制文件

头歌Java答案 学习-Java输入输出之字节缓冲IO流之复制文件

个人博客地址https://sun98k.github.io/ 9006

IO流的学习-字节流

流 流要以程序,项目为主体。 程序到文件 =》输出(Output) 文件到程序 =》输入(Input) 字节输出流OutputStream       OutputStream此抽象类,是表示输出字节流的所有类的超类。操作的数据都是字节,定义了输出字节流的基本共性功能方法。   输出流中定义都是写write方法,如下图: FileOutputS

玩垃圾的人 306

IO流中的字节和字符流的简单学习

BufferedInputStream 其实FileInputStream其实一次读取一个字节的,但是使用BufferedInputStream 了之后,可以搞一个缓冲的数组,一次可以读取多个,那么循环次数就会减少,代码的效率就会提升。在servlet中,response对象获取的输出流,即字节流和字符流互斥,只能使用一个。是一个阅读字符文件的便利类,是专门处理字符文件的,比如txt文件。只有一个缓冲区,只能用于一个字节输出流,或字符输出流。是从字节流到字符流的桥:它读取字节,并使用指定的。...

weixin_58694902的博客 178
上一篇: 树冠形式遍历文件夹下文件
下一篇: FileUtil-文件拷贝
何厚勋
博客等级 码龄10年 14粉丝 89原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值