Java面向对象—IO流

手把手教你用VM实现欧姆龙PLC数据采集(含Fins协议配置详解) 本文详细介绍了如何使用VM(VisionMaster)实现与欧姆龙PLC的数据采集,重点解析了Fins协议(包括Fins TCP/UDP)的配置步骤。从网络环境搭建、PLC的IP地址设置,到VM端Fins通讯通道的详细配置与数据点映射,提供了完整的实战指南。文章还涵盖了数据收发解析、常见问题排查清单,帮助工程师快速完成视觉系统与PLC的稳定集成。 阅读详情

I/O流

一、什么是I/O流

I :Input

O:Output

通过I/O可以完成硬盘文件的读和写

二、I/O流的分类

1、按照流的方向进行分类:

以内存作为参照物: 。往内存中去: 叫做输入(lnput)。或者叫做读(Read)。 。从内存中出来: 叫做输出(Output)。或者叫做写(Write)。

2、按照 读取数据方式 不同进行分类: (1)按照 字节 的方式读取数据,一次读取1个字节byte,等同于一次读取8个二进制位,文本文件,图片,声音文件,视频文件 等... 这种流是万能的,什么类型的文件都可以读取。包括:文本文件,图片,声音文件,视频文件 等...

例如: 假设文件file1.txt,采用字节流的话是这样读的! a中国bc张fe 第一次读: 一个字节,正好读到'a' 第二次读:一个字节,正好读到中”字符的一半。 第三次读:一个字节,正好读到中”字符的另外一半

(2)按照 字符 的方式读取数据的,一次读取一个字符 这种流是为了方便读取 普通文本文件 而存在的,这种流不能读取: 图片、声音、视频等文件。只能读取 纯文本文件,连word文件都无法读取。 注意: 纯文本文件,不单单是txt文件,还包括 .java、.ini、.py 。总之只要 能用记事本打开 的文件都是普通文本文件。

例如: 假设文件file1.txt,采用字符流的话是这样读的: a中国bc张=fe 第一次读:a字符 (a字符在windows系统中占用1个字节。) 第二次读:中字符(中字符在windows系统中占用2个字节。)

3、按照流的处理方式分类:

(1)直接处理流:

(2)间接处理流:

综上所述:流的分类:

输入流、输出流

字节流、字符流

直接处理流、间接处理流

三、File类的常用方法:

  • boolean exists() 判断文件或目录是否存在

  • boolean isFile() 判断是否是文件

  • boolean isDirectory() 判断是否是目录

  • String getPath() 返回此对象表示的文件的相对路径名

  • String getAbsolutePath() 返回此对象表示的文件的绝对路径名

  • String getName() 返回此对象表示的文件或目录的名称

  • boolean delete() 删除此对象指定的文件或目录

  • boolean createNewFile() 创建名称的空文件,不创建文件夹

  • long length() 返回文件的长度,单位为字节,如果文件不存在,则返回0

public class FileTest01 {
    public static void main(String[] args) {
        File f=new File("D:/123.txt");
        System.out.println("文件绝对路径"+f.getAbsolutePath());//D:\123.txt
        System.out.println("文件是否存在"+f.exists());//true
        System.out.println("是否是文件"+f.isFile());//true
        System.out.println("是否是目录"+f.isDirectory());//false
        System.out.println("文件相对路径"+f.getPath());//D:\123.txt
        System.out.println("文件名"+f.getName());//123.txt
        try {
            if (f.createNewFile()){
                System.out.println("创建成功");
            }else{
                System.out.println("文件已存在");
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        System.out.println("文件长度"+f.length());//45
    }
}

文件输出流

/**输出流,字节流,直接处理流
 * @author Lx 写出
 * @create 2024-03-05 21:19
 */
public class FileOutputTest02 {
    public static void main(String[] args) throws IOException {
        File f=new File("D:/456.txt");
        //输出流,true表示在f的基础上追加内容
        OutputStream os=new FileOutputStream(f,true);
        //也可以写成以下形式,效果一样
        //OutputStream os=new FileOutputStream("D:/456.txt",true);//直接对文件处理
        for (int i = 1; i < 1000; i++) {
            //在文件中写入
            os.write(i);
        }
        os.flush();//强制把半路的数据压入文件
        os.close();//关闭流
    }
}

文件输入流

/**输入流,字节流,直接处理流
 * @author Lx
 * @create 2024-03-06 14:53
 */
public class FileInputTest03 {
    public static void main(String[] args) throws IOException {
        File f=new File("D:/456.txt");
        //定义一个输入流接到文件中
        InputStream is=new FileInputStream(f);
        //定义一个小桶用来装数据
        byte [] b=new byte[1024];
        //用read()方法把数据装入到小桶中,并计算出一桶里装多少个数据
        int length=0;
        //System.out.println(length);
        //大于0则表示有数据
        while((length=is.read(b))>0){
            //把一桶数据存到str中
            String str=new String(b,0,length);
            System.out.println(str);
            //再读下一桶数据
            //length=is.read(b);
            System.out.println(length);
        }
        is.close();
    }
}

写出

/**输出流,字符流,直接处理流
 * @author Lx
 * @create 2024-03-06 15:43
 */
public class FileWriterTest0401 {
    public static void main(String[] args) throws IOException {
        Writer w = new FileWriter("D:/456.txt",true);
        /*for (int i = 1; i < 1000; i++) {
            w.write(i);
        }*/
        char [] c="把这一段字符串放在数组中".toCharArray();
        for (int i = 0; i < c.length; i++) {
            w.write(c[i]);
        }
        w.flush();
        w.close();
    }
}

读入

/**输入流,字节流,直接处理流
 * @author Lx
 * @create 2024-03-06 20:33
 */
public class FileReaderTest05 {
    public static void main(String[] args) throws IOException {
        //定义一个输入流
        Reader r=new FileReader("D:/456.txt");
        //定义一只小桶
        char[] c=new char[1024];
        int length=r.read(c);
        while(length>0){
            String str=new String(c,0,length);
            System.out.println(str);
            length=r.read(c);
        }
        r.close();
    }
}
【Claude Code】Not logged in 未登录错误解决方案 + /login 认证路径 Claude Code 启动时提示 Not logged in 表示当前会话缺少有效凭证。本文从环境变量、API Key 配置、CI 自动化凭证脚本和系统时钟四个维度,提供完整的认证排查流程与修复方案。 阅读详情

相关推荐

基于STM32F407与AD9910/AD9959的高频可调DDS信号源设计与实战

本文详细介绍了基于STM32F407微控制器与AD9910/AD9959高性能DDS芯片的高频可调信号源设计与实现。文章从DDS原理入手,阐述了双芯片方案的优势,并重点分享了高频电路设计中的电源、PCB布局布线等关键硬件设计技巧与避坑指南。同时,提供了通过SPI配置DDS芯片及利用Matlab生成任意波形的软件驱动方法,旨在帮助开发者打造一个覆盖10Hz至4200MHz的实用信号发生器。

weixin_36184718的博客 120

JavaSE 面向对象程序设计进阶 IO流 字节流详解 抛出异常

存储和读取数据的解决方案内存中数据不能永久化存储 程序停止运行 数据消失File只能对文件本身进行操作 不能读写文件里存储的数据读写数据必须要有IO流可以把程序中的数据保存到文件当中还可以把本地文件中的数据读取到数据当中。

多多的博客 11万+

别再乱调了!Zygo MetroPro软件滤波功能保姆级指南,从均值到鲁棒高斯样条一次讲清

本文深入解析Zygo MetroPro软件的滤波功能,从均值滤波到鲁棒高斯样条等九种算法,帮助用户根据测量对象特性选择最佳滤波组合。通过真实工业案例和参数配置指南,提升光学测量数据的准确性和效率,特别适用于硅晶圆、光学镜片等精密测量场景。

weixin_30888413的博客 155

Java面向对象、异常、集合、IO流

【代码】Java面向对象。

CodeJump的博客 188

SRAM compiler中Power Gating与Retention的实战配置指南

本文深入解析了在SRAM compiler中配置Power Gating(电源门控)与Retention(数据保持)功能的实战指南。针对低功耗芯片设计,文章详细阐述了如何根据应用场景(如移动AP、IoT设备)权衡开关类型、尺寸、唤醒时序以及保持电压,以实现静态功耗优化与数据可靠性的最佳平衡,并强调了后端实现与签核检查的关键要点。

weixin_29204121的博客 293

Silvaco TCAD | GaN HEMT器件仿真与高频功率应用实战

本文详细介绍了使用Silvaco TCAD进行GaN HEMT器件仿真的全流程,涵盖器件结构设计、极化效应建模、高频特性分析及功率损耗优化。通过实战案例展示了GaN HEMT在电动汽车电驱和快充模块等高频功率应用中的性能优势与效率提升策略,为工程师提供可靠的仿真方法与设计验证手段。

desk3的博客 182

Java阶段性测试--知识点:数组,面向对象,集合、线程,IO流

#Java基础测试 涉及知识点:数组,面向对象,重载,重写,继承,集合,排序,线程,文件流 一、多项选择题(可能是单选,也可能是多选) 1.下列标识符命名不合法的是(   D  )。 A.$_Name B.$_¥ C.line D.2variable   2.下列不属于基本数据类型的是(  B C )。 A.boolean         B.Integer;

Java仗剑走天涯 2254

2025华东杯A/B/C题解题思路+可运行代码参考

这些因素包括但不限于:助滑坡的坡度、运动员的质量、滑雪板的接触面与雪地的摩擦力、空气阻力系数、运动员的体型和衣物形态等。助滑坡是运动员滑行至起跳台前的最后一段坡道,这一段坡道的坡度、长度和运动员的姿势会直接影响到起跳时的初始速度。运动员的滑行速度不仅受助滑坡的坡度影响,还受到摩擦力、空气阻力和重力等多方面因素的影响。通过合理的姿势调整,运动员能够有效减少空气阻力,增加身体的重力加速度,进而提升滑行速度。助滑坡的角度通常介于10°到12°之间,而运动员的滑行速度将受到重力、摩擦力和空气阻力的共同作用。

qq_52590045的博客 1796

java流(Stream)、IO流、文件File、使用面向对象统计文件夹的大小

IO流总览图 java流(Stream)、IO流、文件File Java.io 包几乎包含了所有操作输入、输出需要的类。所有这些流类代表了输入源和输出目标。 Java.io 包中的流支持很多种格式,比如:基本类型、对象、本地化字符集等等。 一个流可以理解为一个数据的序列。输入流表示从一个源读取数据,输出流表示向一个目标写数据。 Java 为 I/O 提供了强大的而灵活的支持,使其更广泛地应用到文...

晨钟暮鼓林中径,晚风花间寺中人 482

【PT+Arduino+OneNET基础教程1】PacketTracer中MCU芯片编程教程(零基础入门)

PacketTracer软件内MCU芯片编程入门 零基础

ChloeMax_的博客 9451

2026年沐曦集成电路数字IC笔试试卷带答案

本文摘要: 这是一份数字IC设计笔试模拟题,包含单选题、波形分析、多选题和代码设计题。重点考察ASIC设计流程(如逻辑综合将RTL转为门级网表)、时序分析(建立时间余量计算)、跨时钟域处理(格雷码应用)、复位机制、状态机设计等核心知识点。涉及沐曦特色考点如GPU架构(SIMT模型)、国产GPU芯片(曦云C系列)及MXMACA软件栈。代码题要求实现50%占空比三分频电路,综合考察Verilog设计能力。试题强调PPA优化、低功耗技术等工程实践要点,覆盖数字IC前端设计全流程核心内容。(149字)

Open 256

java基础(环境,java平台,jvm,异常,面向对象,数组,IO流,容器等等)

java最为基础的东西,有用的到的记得关注收藏哦

m0_62187858的博客 1002

YOLOv5入门实践(2)——手把手教你利用labelimg标注数据集

YOLOv5入门实践第2步,手把手教你使用labelimg标注数据集

路人贾的博客 1万+

Java面向对象【IO流】

Java的IO流的使用与介绍

weixin_62584200的博客 1016

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

WINCC7.3破解文件

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

Java面向对象的编程——IO流

IO流 输入(input)与输出(output) Java语言在IO设计方面取得较大的成功,它是完全面向对象的,主要采用装饰器模式避免大量的类,包括了最大的可能,提供了较好的扩展机制。 流 Java的IO主要包含三个部分: 流式部分——IO的主题部分 非流式部分——主要包含一些辅助流式部分的类 文件读取部分的与安全相关的类以及与本地操作系统相关的文件系统的类 Java中的流操作分为两种 基于字节流(InputStream读取,OutPutStream写入) 字符流(Reader读取、Writer写入)

给我new一个亿的博客 366

jre9下载 jdk9

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

Java面向对象高级2(泛型、集合、IO流)

通过散列函数得到一个值,与当前数组位置比较,如果数组为空就放数组里,不为空就挂在当前数组位置,形成链表,当长度大于8是且数组长度大于64时就将链表转化为红黑树(自动平衡的二叉树且增删改查性能好)当基于双链表时,对首尾的查找是很快的,可以用来设计队列(对首尾操作)和栈(只对首部操作)List:有序、可重复、有索引(ArrayList、LinkedList)LinkedList是基于链表实现的,链表:增删快,改查慢。ArrayList是基于数组实现的,数组:增删慢,改查快。,用来装数据的,类似于数组,

m0_73419206的博客 473

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Java面向对象——IO流其他对象

面向对象 Java

新长城 1502

Java面向对象 IO流

字节输出流: 父类就是 OutputStream 凡是:XxxOutputStream 的都是字节输出流的实现类。字节输入流: 父类就是 InputStream 凡是:XxxInputStream 的都是字节输入流的实现类。6. 字节输出流: 父类就是 OutputStream 凡是:XxxOutputStream 的都是字节输出流的实现类。5. 字节输入流: 父类就是 InputStream 凡是:XxxInputStream 的都是字节输入流的实现类。

2302_78447973的博客 157

Java面向对象——IO流体系

面向对象 类 Reader |--InputStreamReader |--FileReader |--BufferedReader |--LineNumberReader |--CharArrayReader

新长城 1497

Java面向对象之IO 流

文章目录1、IO 流1.1、文件1.1.1、什么是文件1.1.2、文件流1.2、常用的文件操作1.2.1、创建文件对象相关构造器和方法1.2.2、获取文件的相关信息1.2.3、目录的操作和文件删除1.2.4、应用案例演示1.3、IO 流原理及流的分类1.3.1、Java IO 流原理1.3.2、流的分类1.4、IO 流体系图-常用的类1.4.1、IO 流体系图1.4.2、文件 VS 流 1、IO 流 1.1、文件 1.1.1、什么是文件 1.1.2、文件流 1.2、常用的文件操作 1.2.1、创建文件对

一切随心走的博客 220

Java面向对象——IO流(字符流读取流)

面向对象 1、IO流用来处理设备之间的数据传输。 2、Java对数据的操作是通过流的方式。 3、Java用于操作流的对象都封装在IO包中。 4、流按操作数据分为两种:字节流与字符流。 5、流按流向分为:输入流,

新长城 1588

基于JAVA+JCF集合+面向对象+IO流之宠物信息管理系统

初学者 入门参考代码 适合课后大作业

Code人生的博客 470

JAVA面向对象-----IO流

I/O是Input/Output的缩写,I/O技术是非常实用的技术,用于处理设备之间的数据传输。如读/写文件,网络通讯等。 这里的输入/输出都是相对的,所以我们一定要明确站位,我们编程中所讲到的输入/输出都是以“内存”的角度看来看的 ~ ~ 输入(Input):读取外部数据(磁盘,光盘等存储设备的数据)到程序中; 输出(Output):将程序(内存)数据输出到磁盘,光盘等存储设备中。 JAVA程序中对于数据的输入/输出操作以“流(stream)”的形式进行。 流的分类: 按操作数据单位不同分为 : 字节流

qq_37453637的博客 381

Java面向对象---IO流

大家又见面了,这周真是难熬的一周啊,刚刚学完文件类和IO流,相信很多小白听到IO流就头皮发麻,不过题主也是这么来的,之前看过高老师的300集,那时候是裴老师讲的,由于是初学学起来简直是劝退,很想骂人,最近学完IO流后回想起来,裴老师讲的真心不错,对于IO流我把学习心得和各位分享,底层的原理只需要熟悉即可,用的很少,除非你搞底层开发的大佬. 1.File类 1.1 对于File类我们只需要简单的掌握...

liaozhongmin_net 492

Java面向对象——IO流 总结应用(打印流)

---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ---------------------- 面向对象 流操作的基本规律:最痛苦的就是流对象有很多,不知道该用那一个。 通过明确来完成。 (1)、明确源和目的 源:输入流InputStream Read

新长城 1243

Java面向对象——IO流(字节流读取流)

面向对象 字节流基类  InputStream OutputStream /* 第一种读取文件的方法。 对于操作文本文件不支持使用此做法。 */ import java.io.InputStream; import java.io.FileInputStream; impor

新长城 1309
上一篇: Java面向对象—外键处理和日期处理
下一篇: Java面向对象—多线程
得闲饮茶呃
博客等级 码龄4年 303粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值