JAVAday20 IO流

软考高级-系统架构设计师 知识点整理 (一篇就够了 建议收藏) 软考高级-系统架构设计师知识点整理---十万字总结,助你通过高级 阅读详情

JAVAday20 IO流

一 IO流概述及其分类

1.什么是IO流

IO流用来处理设备之间的数据传输,java对数据的操作都是通过留的方式,操作的对象都在Io包中java.IO

2.IO流的分类

a:按照数据的流向(站在内存的角度)

输入流-------读入数据

输入流-------写出数据

b:按照数据类型

字节流:可以读写任何类型的文件,比如音频,视频,文本文件

字符流:只能读写文本文件

如果数据所在的文件通过windows自带的记事本打开并能读懂里面的内容,就是字符流;如果不知道是什么类型就用字节流。

二 IO流基类概述及FileOutStream的构造方法

1.IO流基类概述

a:字节流的抽象基类

InputStream ,OutputStream

b: 字符流的抽象基类

Reader ,Writer

由这四个类派生出来的子类名称都是以其父类名作为子类名的后缀

2.字符流继承关系

writer:BufferWriter

​ OutputStreamWriter

​ PrintWriter

Reader: BufferReader

​ InputStreamReader

3.字节流继承关系

InputStream :FileIputStream

​ ByteArrayInputStream

		  ObjectInputStream

​ SequenceInputStream

OutputStream:FileOutputStream

​ ByteArrayOutputStream

​ ObjecyOutputStream

4.FileOutputStream的构造方法

public static void main(String[] args) throws IOException {
        //异常的处理 File
        //I/O InputStream 输入流  OutPutStream 输出流  处理设备之间的一个数据传输
        //流按照流向分:分为 输入流和输出流
        //按照读写文件的类型分:分为字节流(可以读写任意类型的文件)和字符流(读写文本文件)
        //字节流:
       //文件输入输出 流
        //文件输出流:写出数据
        //
        //FileOutputStream(File file)
        //创建一个向指定 File 对象表示的文件中写入数据的文件输出流。

        //FileOutputStream(String name)
        //创建一个向具有指定名称的文件中写入数据的输出文件流。
        File file = new File("a.txt");
        //file.createNewFile();
        //输入流,所关联的文件,如果该文件不存在 ,那么会自动帮你创建
        FileOutputStream out = new FileOutputStream(file);

        FileOutputStream fileOutputStream = new FileOutputStream("b.txt");
        //流用完之后必须释放资源
        out.close();
        fileOutputStream.close();

    }
}

5.FileOutputStream的三个writer()方法

public static void main(String[] args) throws IOException {
        //通过文件输出流,往他所关联的件中,写出数据
        FileOutputStream out = new FileOutputStream("a.txt");
        //写数据
        out.write(97); //一次写入一个字节
        out.write(98);
        out.write(99);
        out.write(100);
        out.write(300); //超过了一个字节,会丢弃掉多余字节
        byte[] bytes = {101, 102, 103, 104};
        out.write(bytes);//一次写入一个字节数组
        out.write(bytes, 2, 2);//一次写入字节数组的一部分,从2索引开始,写2个字节
        String str = "杨家有女初长成,养在深闺人未识";
        //UTF-8 编码 一个汉字占三个字节
        byte[] bytes1 = str.getBytes();//将一个字符串,转换成字节数组
        out.write(bytes1);
        out.close();
    }
}

6.FileOutputStream写入数据实现换行和追加写入

//换行
public static void main(String[] args) throws IOException {
        FileOutputStream out = new FileOutputStream("b.txt");
        out.write("回眸一笑百媚生,六宫粉黛无颜色".getBytes());
        out.write("\r\n".getBytes());//写入一个回车换行符
        out.write("回眸一笑百媚生,六宫粉黛无颜色".getBytes());
        out.write("\r\n".getBytes());//写入一个回车换行符
        out.write("回眸一笑百媚生,六宫粉黛无颜色".getBytes());
        out.write("\r\n".getBytes());//写入一个回车换行符
        out.write("回眸一笑百媚生,六宫粉黛无颜色".getBytes());

        //各个平台的换行符,都不一样
        //windows 平台 \r\n
        //Linux		\n
        //Mac		\r
        //流用完之后,必须释放资源
        out.close(); //关闭流
    }
//追加写入
 FileOutputStream out = new FileOutputStream("c.txt",true);
        out.write("回眸一笑百媚生,六宫粉黛无颜色".getBytes());
        out.write("\r\n".getBytes());//写入一个回车换行符
        out.write("回眸一笑百媚生,六宫粉黛无颜色".getBytes());
        //释放资源
        out.close();
    }

7.FileOutputStream读取数据

public static void main(String[] args) throws IOException {
        FileInputStream in = new FileInputStream("e.txt");
        //读取文件中的数据
        int len = in.read();//一次读取一个字节
        System.out.println(len);
        len = in.read();//一次读取一个字节
        System.out.println(len);
        len = in.read();//一次读取一个字节
        System.out.println(len);
        len = in.read();//一次读取一个字节
        System.out.println(len);
        len = in.read();//一次读取一个字节
        System.out.println(len);
        len = in.read();//一次读取一个字节
        System.out.println(len);
        len = in.read();//一次读取一个字节
        System.out.println(len); //读取不到返回-1

        in.close();//记得流用完之后,释放资源

缓冲思想

字节流一次读写一个数组的速度明显比一次读写一个字节的速度快,这是加入了数组这样的缓冲区。

//一次读取一个字节数组复制文本文件
 public static void main(String[] args) throws IOException {
        FileInputStream in = new FileInputStream("e.txt");
        byte[] bytes = new byte[1024];
        //读取字节数组的一部分
        //把读取到的字节的一部分,装入到缓冲区中
        int len = in.read(bytes, 0, 3);
        String s = new String(bytes, 0, 3);
        System.out.println(s);

        in.close();
    }

8.BufferoutputStream写入读取数据

为了缓冲方便,java直接提供了一种字节缓冲区流

//高效的字节输入输出流
private static void copyFile1() throws IOException {
        BufferedInputStream bfr = new BufferedInputStream(new FileInputStream("demo.mp3"));
        BufferedOutputStream bfw = new BufferedOutputStream(new FileOutputStream("demo2.mp3"));
        //读取一个字节写入一个字节
        int len=0;
        byte[] bytes = new byte[1024 * 8];
        while ((len=bfr.read(bytes))!=-1){
            bfw.write(bytes,0,len);
        }
        bfr.close();
        bfw.close();
SAP自动化-ME51N批量创建采购申请 2、需要管理员授权RZ11脚本录制回放功能。1、仅限于正对SAP日常工作的批量处理。3、数据模板按实际需求更新。物料编码,工厂,数量。 阅读详情

相关推荐

KANO分析模型

KANO分析模型的基本概念,目的意义,应用场景,实现方法和示例等

JasonH2021的博客 3067

javaday20-IO流

20.01_IO流(IO流概述及其分类) 1.概念IO流用来处理设备之间的数据传输 Java对数据的操作是通过流的方式 Java用于操作流的类都在IO包中 流按流向分为两种:输入流,输出流。 流按操作类型分为两种:字节流 : 字节流可以操作任何数据,因为在计算机中任何数据都是以字节的形式存储的 字符流 : 字符流只能操作纯字符数据,比较方便。 2.IO流常用父类 字节流的抽象父类: Inpu

First 007的博客 561

10位PWM能否满足电梯±5mm平层精度?4位扩展法让10位PWM达到14位精度

电梯平层精度直接关系乘坐舒适性与安全性,而PWM分辨率是决定精度的关键因素之一。10位PWM能否满足±5mm的平层精度要求?本文从分辨率与物理量的对应关系出发,结合工程精度需求与实战对比,给出明确的选型结论与解决方案,请参考优快云博客《4位扩展法:基于ATtiny816的高精度PWM软件扩展方法》和《低成本高精度PWM:4位扩展法原理、实现和工程实践》。10位PWM的分辨率为 $2^{10} = 1024$ 级。

m0_73354873的博客 244

JavaDay20 IO流-练习

1. 运用缓冲流完成文件复制 //1.字节缓冲输入输出流 package com.briup.day21; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.FileInputStream; import java.io.FileOutputStream; public class Method1 { public static void main(String[] args) t

应付就业 ·· 规划职业? 434

【ORB_SLAM系列4】—— 一文搞定如何在Ubuntu20.04中安装运行ORB_SLAM3(包含ROS版本和非ROS版本)

ORB-SLAM3是一款基于特征点的实时单目SLAM系统,是SLAM领域的研究热点之一。它的核心算法是结合了ORB特征点提取和描述子匹配、单目RGB相机的深度估计、运动估计和地图优化等步骤,能够在实时性和精度之间取得平衡,适用于各种环境下的定位和建图任务。在各种应用领域都有广泛的应用。本教程主要是介绍了关于在ubuntu20.04中运行ORB_SLAM3的所有依赖的库的安装过程,和所遇到的一些报错的解决方法。有什么问题,可以评论区里面交流讨论

2401_82458959的博客 5039

MedicalNet实战:3D医疗影像分割从零到部署(PyTorch+ResNet50)

本文详细介绍了基于PyTorch和MedicalNet预训练模型进行3D医疗影像分割的完整实战流程。通过加载ResNet50预训练权重进行迁移学习,大幅降低了对标注数据量的需求,并提升了模型性能。文章涵盖了从数据准备、模型微调、训练优化到最终部署的每一步,为医疗AI开发者提供了从零到部署的清晰指南。

weixin_29062671的博客 589

「JavaDay20」IO流(1)

JavaDay20 IO流-(1) https://github.com/Philbenzy/Java-question-100/tree/main/day20 这次分享的是两类知识 (1)递归 (2)IO流 1-递归 (1)方法中调用方法本身 递归需要与方法嵌套作区分,例如「Math.max(Math.max(1, 2), 3)」就是函数嵌套。 如何分区递归与方法嵌套? 回答:函数嵌套强调的是语言特性,递归调用强调的是逻辑思想。 (2)递归注意事项 递归需要出口条件 递归需要放置内存溢出 构造方法中不能

她的妈妈爱上我的博客 191

基于yolo11的BGA图像目标检测

15.YOLOv8的n/s版本(如YOLOv8n-1280),或通过TensorRT量化压缩模型。3.使用自适应batch_size(如根据GPU显存动态调整),推荐16-32。为采集分辨率整数倍(如原图2592×1944,训练时缩放为640×480),保持宽高比。14.采用余弦退火学习率(cos_lr)和早停(patience=50),防止过拟合。1.模型标注后,少量标注全部人工校验,大量数据抽检,部分人工检验。13.部署模型后持续收集困难样本(如模棱两可的预测结果),定期迭代更新模型。

qq_47798402的博客 1205

JavaDay21 IO 流

tags: 单例 IO流 JavaDay21 IO 流 @toc 一、 复习 单例: 在整个程序运行的过程中有且只能有一个当前类对象 实现步骤: 1.私有化构造方法 2.提供给类外获取类对象的方法,一个用static修饰的静态方法 pubilc static 类对象类型 方法名(形式参数和类内的构造方法一致) 3.在类内定义一个static修饰的静态成员变量,用于保存之前创建过的类对象...

GJXAIOU 的 优快云 博客 161

开关电源中的高频振荡噪声及其抑制方法

在开关电源的工作过程中,随着开关管的开关动作,电流和电压波形会出现剧烈的波动,尤其是在开关管切换的瞬间,往往会导致较强的过冲现象。开关电源中的高频振荡噪声是导致电磁兼容问题的主要源头之一,尤其是MOS管的通断和整流二极管的反向恢复过程中,会产生较强的高频振荡噪声。通过合理调节R和C的值,可以大大缓解高频振荡带来的EMC问题,从而有效提升电源的电磁兼容性。整流二极管反向恢复时的振荡会导致高频噪声产生,这些高频噪声源可被传导到电源的输出端,甚至可能通过电源的共地路径扩散到其他电路,影响系统的稳定性和可靠性。

硬核科技 1531

代谢组数据分析(十五):基于python语言构建PLS-DA分类预测模型

本教程阐述典型代谢组学数据分析工作流程,用于二元分类结果的研究。流程主要步骤如下:首先从 Excel 表格导入代谢物与实验数据,接着基于汇总 QC 进行数据清洗。随后借助主成分分析可视化检查数据质量,再开展两类单变量统计。之后运用偏最小二乘判别分析(PLS - DA)实施多变量分析,此过程涵盖模型优化(对比 R2 与 Q2)、置换测试及明确模型预测指标、确定特征重要性、对模型预测数据进行可视化。最终将统计表格导出至 Excel 表格,完整呈现从数据导入到分析结果输出的全过程。

专注生信领域 2876

【JAVADAY24】温习之IO流

IO流 输入流:从硬盘读取数据到内存 输出流:从内存写出数据到硬盘 所有输出流都是可以刷新的,即将缓存的数据一次性发送出去,将管道中的剩余数据全部发送出去,flush用完输出流一定要flush一下。 1、字节流,字节流是万能的,可以读写任何文件,文本文件、音频、视频… 以Stream结尾的都是字节流。 顶级父类:inputsteam、outputstream 用完流必须关闭,close; 1.1、输入字节流:file inputstream 1.2、输出字节流:file outputstrea 使用方法:

Keyle777的博客 235

【基于 CasADi 的欠驱动无人船实时非线性模型预测控制(NMPC)实现 Visual Studio 2022 C++】

本文介绍了基于CasADi和IPOPT在Visual Studio 2022 C++环境下实现的欠驱动无人船实时非线性模型预测控制(NMPC)方案。文章详细阐述了NMPC基本原理、欠驱动无人船动力学模型(包含状态变量和控制变量定义),并给出了C++实现的核心代码框架。该方案通过显式引入系统动力学模型和约束条件,在每个采样周期滚动优化控制序列,有效解决了欠驱动无人船的轨迹跟踪与避碰问题。文中还提供了VS2022配置CasADi环境的详细步骤,包括预编译包下载、工程属性设置等关键环节,为工程实现提供了完整的技术

vor234的博客 653

JavaDay22 IO流(3)

JavaDay22 IO流(3) 本次接触到的知识点 (1)数据操作流(操作基本数据类型的流) (2)内存操作流 (3)打印流 (4)System类中的标准输入流 (5)随机访问流 (6)合并流 (7)序列化流 (8)Properties (9)NIO (10)练习,使用IO流练习读取与登录玩猜数字游戏案例 1-数据操流Data 用来读写基本数据类型(String byte boolena char …)的流 数据输入流:DataInputStream(InputStream in) 数据输出流:DataO

她的妈妈爱上我的博客 235

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

JavaDay15:IO流

IO流什么是IOFileIO分类图片的复制文本文件的读取文本文件的写入特定变量 什么是IO 输入输出流,使用数据通讯的通道。 File java代码是可以操作硬盘上的文件的,因为硬盘上文件可以映射为java内存中的File,我们直接操作内存中的File,就可以间接的操作硬盘上的文件。 IO分类 输入\输出 字节\字符 字节输入流 字节输出流 字符输入流 字符输出流 图片的复制 /* * 字节流 * * 目标:复制一个图片到另外一个地方。 * 流都是占资源的,需要释放

m0_49553291的博客 164

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Javaday28 IO流和简单练习

1、IO流 1.1、流的概念 流对于计算机来说是一个抽象的概念,是对输入输出设备的抽象 在Java程序中,对于数据的输入和输出操作,都是以流的形式 数据以二进制的形式在程序和设备之间流动,这种传输方式称之为输入流、输出流。 流是具有方向的性------输入流和输出流 以Java程序为参照,数据从其他地方(设备)流向程序,这就是输入流,反之就是输出流。 从文件中写入数据----------输出流 从文件中读出数据----------输入流 1.2、流的分类 我们一般按照数据的流向和数据的类型进行划分

weixin_45331493的博客 180

jre9下载 jdk9

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

Javaday18IO流

文件操作 顾名思义, 操作磁盘上的某一个文件或者某一个文件夹。 可以对他们进行创建、 删除、 移 动、 属性获取、 属性设置等操作。 但是, 并不包含读取文件的内容、 拷贝文件。 在Java中, 使用 java.io.File 类描述一个文件, 或者是一个文件夹。 ...

leezsj的博客 106

IO流(javaday12)

按流的方向分为:输入流:(Input)负责把数据读到内存中去输出流:(Output)负责写数据出去按流中数据的最小单位分为:字节流:适合操作所有类型的文件字符流:只适合操作纯文本文件。

2403_87793978的博客 453

javaDay05-IO流

异常: 略。 File: (1)构造: File(String pathname) File(String parent, String child) File(File parent, String child) (2)方法: 创建 public boolean createNewFile() public boolean mkdir() public boolean mkdirs() 删除 public boolean delete()(注意:删除文件夹时 这个文件夹是空文件夹 如果这个文件夹里面

Geass_Monster的博客 161

Javaday22 杂七杂八流

Javaday22 杂七杂八流 一 数据输入输出流的概述和使用 数据输入流 :DateInputStream 数据输出流:DateOutputStream 特点: 可以写基本数据类型,可以读取基本数据类型 public static void main(String[] args) throws IOException { //数据输入输出流的特点,就是能够读写基本数据类型 ...

Yapiyaner的博客 236

JavaDay8(文件与IO流)

IOIOIOIOIOIOIOIOIOIOIOIO

LU0731的博客 234

Javaday30 IO流中常用的流

I/O流中常用的流 如果是对多媒体文件而言,最好使用字节流 FileOutPutStream FileIntPutStream BufferedInPutStream BufferedOutPutStream 如果是对文本文件最好使用字符流 BufferedReand PrintWriter 如果没有特殊要求的情况下,上述的流可以泛用于各种情况。 FileOutPutStream和FileInPutStream FileOutPutStream 文件字节输出流: 三种构造方法: Fi

weixin_45331493的博客 268

JavaDay20学习总结

一、笔记 内存流: 把数据保存到内存里 ByteArrayOutputStream 父类是 OutputStream 输出流==>把数据保存到内存里 构造方法:public ByteArrayOutputStream() 因为所有的输入流对象都会传递一个文件的参数而这个对象的构造没有这个参数,所有需要借助其它的流对象. 常规获取数据的方法是: toByteArray() toStr...

qq_44413573的博客 138

JavaDay22—IO流—字节流&字符流的读写

1.研究IO流,我们主要研究什么? 怎么new流对象。 调用流对象的哪个方法是读,哪个方法是写。 因为:java中所有的流都是在:java.io.*;下。 2.什么是IO流? I : Input O : Output 通过IO可以完成硬盘文件的读和写。+ 3.IO流的分类? 在java中只要“类名”以Stream结尾的都是 字节流。 以“Reader/Writer”结尾的都是 字符流。 3.1.按照流的方向进行分类:以内存为参照 输入流:往内存中去,叫做输入(Input)。或者叫做读(R

m0_38057941的博客 236

Javaday19IO流2

缓冲流的简介 基本介绍 给普通的IO流, 套上一个缓冲区。 所有的使用缓冲流进行的读写操作, 都是和缓冲区进行交 互的, 避免了频繁的IO操作。 这样一来, 带来的好处就是可以提高读写的效率。 这个缓冲 区, 其实是一个数组。 缓冲流的作用 为了提高读写的能力,本身没有读写的能力,要想进行读写就必须借助于字符流/字节流实现. 可以将缓冲流类比于催化剂或者高速的小车 ...

leezsj的博客 125

javaDay14_流

作业:文件夹 名字叫做zuoye,如不存在先创建,创建之后,从文件夹中创建文件MyZuoYe 创建后,按照下列格式输入。注意:boolean值代表是否对内容继续操作,true代表对内容继续操作(往后继续写),false。listFiles :获取(文件夹)下(一)级全部文件(包含文件夹)的file对象。(1):write(byte[]对象):输出一个byte数组到文件。"E:\\file测试\\d02/file01/ceshi.txt"// 非空文件夹 —— 空的文件夹 :文件夹里头的清理掉。

这就是程序猿的博客 713
上一篇: JAVAday17 Set集合
下一篇: Javaday21 字符流出现的原因 转换流
Lapiyaner
博客等级 码龄9年 0粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值