Java流与文件操作

Java流和文件操作总结 还有我们平时用的 Office 软件,对于 Word、Excel 和 PPT 文件,我们需要打开文件并读取这些文本,和编辑输入一些文本,这都需要利用输入和输出的功能。UTF:UTF 编码兼容了 ISO8859-1 编码,同时也可以用来表示所有的语言字符,不过 UTF 编码是不定长编码,每一个字符的长度为 1~6 个字节不等。计算机中,任何的文字都是以指定的编码方式存在的,在 Java 程序的开发中最常见的是 ISO8859-1、GBK/GB2312、Unicode、 UTF 编码。 阅读详情
 

Java流与文件操作

一、   数据流的基本概念

1.数据流

在Java中把不同的数据源与程序之间的数据传输都抽象表述为“流”(stream),以实现相对统一和简单的输入/输出操作方式。传输中的数据就像流水一样,也称为数据流。

2 .I/O数据流的分类方式

数据流分为输入流和输出流两类。输入流只能读取不能写。而输出流只能写不能读。(这里站在程序的角度来确定出入方向,即将数据从程序外部传送到程序中谓之“输入”数据,将程序中的数据传送到外部谓之“输出”数据。

)

3.缓冲流(Buffered Stream)

对数据流的每次操作都是以字节为单位进行的,既可以向输出流写入一个字节,也可从输入流中读取一个字节。显然效率太低,通常使用缓冲流,即为一个流配置一个缓冲区,一个缓冲区就是专门传送数据的一块内存。

4.数据源(Data Sourcc):是指那些能够提供数据的地方,包括键盘、磁盘文件、网络接口等。

5.数据宿(Data Sink):指能够接收数据的地方,可以是磁盘文件、网络接口以及显示器、打印机等外部设备。(数据宿也可认为是数据传输的目的地)

二、节点流和处理流

根据数据流所关联的是数据源还是其他数据流,可分为节点流(Node Stream)和处理流(Processing Stream)

节点流可以从/向一个特定的地方读/写数据。

处理流是对一个已存在的流的连接和封装,通过所封装的流的功能调用实现增强的数据读/写功能,处理流并不直接连接到数据源。

二、   字符流

1.字符输入流Reader

Reader类为所有面向字符的输入流的超类,声明为java.io中的抽象类。

public int read():读取一个字符,返回的是读到的那个字符。如果读到流的末尾,返回-1。

public int read(char[] cbuf):将读到的字符存入指定的数组中,返回的是实际读取的字符数。如果读到流的末尾,返回-1。

public abstract int read(char[] cbuf,int off,int len):将读到的字符存入数组的指定位置(off),每次最多读len个字符,返回实际读取的字符数。如果读到流的末尾,返回-1。

close():读取字符其实用的是window系统的功能,使用完毕后,进行资源的释放。

 

2.字符输出流writer

Weiter类为所有面向字符的输出流的超类,声明为java.io中的抽象类。

public void write(int c):将一个字符写入到流中。

public void write(char[]):将数组中的字符依次写出。

public abstract void write(char[] bcbuf,int off,int len):将数组中下标off开始的len个字符写出。

public void write(String):将一个字符串写入到流中。

public abstract void flush():刷新流,将流中的数据刷新到目的地中,流还存在。

public abstreact void close():关闭资源,关闭前会先调用flush,刷新流中的数据去目的地,然后流关闭。

3. FileWriter的使用

该类没有特有的方法。只有自己的构造数。

该类特点:

1.用于处理文本文件。

2.该类中有默认的编码表,

3.该类中有临时缓冲。

构造函数

publicFileWriter(Stringfilename);//调用系统资源,在指定位置,创建一个文件。注意:如果该文件已存在,将会被覆盖。

例子:import java.io.*;

 

 

public class Demo1 {

 

  /**

   * @param args

   */

  public static void main(String[] args)throws IOException {

    // TODO Auto-generated method stub

    //创建输出流对象

    FileWriter fw=new FileWriter("demo.txt");

    char ch='中';

    char arr[]={'a','b','','c'};

    string str="program";

    fw.write(ch);

    fw.write(arr);

    fw.write(arr,1,2);

    fw.write(str,3,3);

    fw.write("helo world");

    fw.flush();

    fw.write("java");

    fw.close();

  }

 

}

4. FileReader的使用

用于读取文本文件的流对象。构造函数:在读取流对象初始化的时候,必须要指定一个被读取的文件。
public FileReader(String filename);//如果该文件不存在会发生FileNotFoundException

例子:import java.io.*;

public class Demo4{

   public static void main(String[] args){

     FileReader fr=null;

     char[] arr=new char[1024];

     try{

     fr=new FileReader("e:/a/demo.txt");//读取可能抛异常

     int len=fr.read(arr);

 

    

     while(len!=-1){

     System.out.print(new String(arr,0,len));

     len=fr.read(arr);//实际读到的字数

     } 

     System.out.println(); 

       

    

     }catch(IOException e){

        System.out.println(e.toString());

     }finally{

        if(fr!=null){

        try{

          fr.close();

        }catch(IOException e){

        System.out.println(e.toString());

        }

 

 

 

}

     }

    

 

   }

}

 

 

基于QGIS的DEM地形数据精细化处理:从裁剪、合并到成果输出 本文详细介绍了使用QGIS进行DEM地形数据的精细化处理流程,包括数据获取、裁剪、合并及成果输出等关键步骤。通过实战技巧和注意事项,帮助用户高效处理地形数据,适用于GIS分析、三维建模等应用场景。 阅读详情

相关推荐

用MFRC522+STM32打造智能门禁:从硬件选型到云端控制全流程

本文详细介绍了基于STM32微控制器和MFRC522射频模块构建智能门禁系统的完整流程。从硬件选型、电路设计、底层驱动开发,到系统软件架构与状态机设计,并最终实现通过ESP8266模块接入云端平台(如OneNET)进行远程控制和数据可视化。项目深入探讨了MFRC522的SPI通信、卡片操作流程、天线调试以及云端MQTT集成等关键技术,为嵌入式开发者提供了一个从本地感知到云端管控的物联网项目实战参考。

raspberrypi5的博客 740

JAVA流的基本操作

1.由值创建流//由值创建//流构造器创建2.数组、列表、文件创建//由数组创建流//由列表创建流//由文件创建。

m0_53029821的博客 2318

Hi3516CV610 YOLOv8模型转换与部署实战:从源码到板端推理全流程解析

本文详细解析了Hi3516CV610开发板上YOLOv8模型的转换与部署全流程,包括模型转换、量化、编译和部署等关键步骤。通过实战案例和避坑指南,帮助开发者高效实现从PyTorch模型到嵌入式设备的推理优化,适用于智能门禁、视频分析等实时场景。

weixin_30790841的博客 651

Java---Stream流技术(全网最详细)

流是Java 8 API添加的一个新的抽象,称为流Stream,以一种声明性方式处理数据集合(侧重对于源数据计算能力的封装,并且支持序列与并行两种操作方式)Stream流是从支持数据处理操作的源生成的元素序列,源可以是数组、文件、集合、函数。流不是集合元素,它不是数据结构并不保存数据,它的主要目的在于计算Stream流是对集合(Collection)对象功能的增强,与结合,可以提高编程效率、间接性和程序可读性。

qq_64847107的博客 1万+

ArcGIS学习记录—SHP文件转换为KML KMZ数据,并显示面要素相应的标注

使用相应软件操作获取KMZ数据得以下发到外业调查人员,使得矢量数据能够更显而易见,可视化,让外业人员的工作减轻许多。(过程步骤是借鉴于网络上的相关人士给的建议,根据这些建议自己做出来的步骤,可能有些粗略,有问题的话可以再进行探讨)...

qq_41046162的博客 5万+

win11怎么安装dosbox和masm来运行汇编程序(小白,萌新篇)

一文教会你如何部署dosbox和masm环境

m0_73279193的博客 4699

Java流操作

当使用Java集合时,我们使用外部迭代。在外部迭代中,我们为每个循环使用for或,或者为序列中的集合的集合和过程元素获取迭代器。以下代码计算列表中所有奇整数的平方和。它使用每个循环访问列表中的每一个元素,然后使用if语句来过滤奇整数。之后,它计算平方,最后存储平方和与和变量。 上面的代码生成以下结果。我们可以使用stream重写上面的代码。 它做的完全一样。 在上面的代码中,我们没有使用循环语句来遍历List。 我们通过流在内部执行循环。对于奇整数计算,我们使用lambda表达式。

qq_45885060的博客 1156

DeepSeek Harness实战:从零构建插件化AI Agent

AI Agent开发正从硬编码走向框架化组织,插件化架构成为提升工程效率的关键。在构建可复用、可扩展的智能体系统时,开发团队需要一套能够统一管理模型调用、工具注册与上下文组装的基础设施。DeepSeek Harness作为面向Agent工程的插件化框架,通过Harness、DeepAgent与Skill三个核心抽象,将模型、工具与技能解耦为可插拔单元,让开发者无需重复造轮子即可快速搭建具备工具调用能力的智能体。本文从环境配置到Skill插件开发,完整演示如何基于DeepSeek模型构建一个可运行的Agent

weixin_34279184的博客 441

java流操作

java流创建&基础操作【带有代码示例】

王文萱的博客 2029

第三天:Python基础语法详解

Python代码规范与注释最佳实践 摘要: 本文深度解析Python缩进规则与代码结构的技术规范,包括缩进的底层原理、语法规则和错误处理。详细阐述Python注释系统,涵盖行内注释、文档字符串和类型注释等多种形式,并提供工业级代码组织方案。研究显示,良好的缩进可提升40%的代码识别速度,降低50%的认知负荷。文章还对比了Sphinx、pdoc等主流文档生成工具,给出企业级项目中的注释编写原则和模板建议,帮助开发者构建更可维护的Python代码。

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 1009

Python的单元测试之unittest

是一个功能类似 unittest 的库,它集合众家标准测试库之所长,和 unittest 相比,功能更为强大,使用更为简单,OpenStack 广泛的利用它编写单元测试。unittest 提供了自动匹配发现并执行测试用例的功能,随着项目代码结构越发庞大,势必有多个测试文件,自动匹配发现并测试用例的功能在此就显得非常有用,只要满足。unittest 提供了丰富的命令行入口,可以根据需要执行某些特定的用例。的测试用例都会被 unittest 发现并执行,测试用例文件的默认匹配规则为 test*.py。

1、测试博主技术知识分享 2、pos行业知识技术分享 3、java后端技术知识分享 4、嵌入式技术知识分享 5、运维部署相关知识分享 281

Java8 Stream:2万字20个实例,玩转集合的筛选、归约、分组、聚合

点击上方好好学java,选择星标公众号重磅资讯、干货,第一时间送达 今日推荐:硬刚一周,3W字总结,一年的经验告诉你如何准备校招! 个人原创100W+访问量博客:点击前往,查...

好好学java 4952

YOLOv11改进入门篇 | 手把手讲解改进模块如何实现高效涨点,以SimAM注意力模块为例

本文记录的是基于SimAM注意力模块的YOLOv11目标检测方法研究。SimAM注意力模块通过优化能量函数来获得每个神经元的三维权重,而或增加计算复杂度。若是有轻量化需求的小伙伴,无参的注意力模块也许是一个不错的选择。

Limiiiing的博客 9034

Java 文件操作与IO流

介绍 Java 如何进行文件操作以及IO 流的使用

熵减玩家 4709

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Java文件操作与IO流

Java文件操作与IO流

2402_89573492的博客 996

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

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

Java IO 流与文件操作

IO流主要用于文件的输入输出操作,Java提供了丰富的类来处理IO流,包括字节流和字符流。字节流主要操作原始二进制数据,而字符流则将字节数据转化为字符数据。

weixin_66244070的博客 954

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

java文件操作与IO流

十三.文件操作 1.构造方法: File(String pathname):根据一个路径得到File对象 File(String parent, String child):根据一个目录和一个子文件/目录得到File对象 File(File parent, String child):根据一个父File对象和一个子文件/目录得到File对象 创建功能: public boolean crea...

NULL_YM 313

Java —— IO流和文件操作

Java 的 IO(Input/Output)是用于处理数据传输读取和写入本地文件(文本/图片/音频等)网络通信(如 Socket)控制台输入输出序列化与反序列化(如写入对象)配置文件处理等。

weixin_73551991的博客 685

Java文件操作与IO流详解

获取当前该路径下所有内容。当调用者File表示的路径不存在时,返回null。当调用者File表示的路径是文件时,返回null。当调用者File表示的路径是一个空文件夹时,返回一个长度为0的数组。当调用者File表示的路径是一个有内容的文件夹时,将里面所有文件和文件夹的路径放在File数组中返回。当调用者File表示的路径是一个有隐藏文件的文件夹时,将里面所有文件夹的路径放在File数组中返回,包含隐藏文件。当调用者File表示的路径是根目录时,返回null。int b;

weixin_67825126的博客 847

Java - IO流 - 详细文件操作

Java 中的文件操作是通过 I/O 流来实现的。I/O 流分为两大类:输入流和输出流。每一类又分为字节流和字符流。Java 提供了丰富的 I/O API 来处理各种文件操作,包括字节流和字符流的读写、文件递归查找、文件的创建、删除、复制和移动等操作。通过灵活运用这些工具,可以方便地处理文件相关的任务。希望本文能帮助你更好地理解 Java 中的文件操作。如果你有任何问题或需要进一步了解某个操作,可以随时提问!

DeL的博客 3664

Java IO流:文件操作与数据读写全攻略

Java IO流核心概念与应用 本文介绍了Java IO流的核心概念和典型应用。IO流是编程中处理输入输出的关键机制,主要分为字节流(InputStream/OutputStream)和字符流(Reader/Writer)两大体系。文章详细讲解了FileInputStream和FileOutputStream的使用方法,包括单字节读取、缓冲区读取、文件写入等操作,并提供了文件复制的示例代码。IO流广泛应用于文件操作、网络通信、内存数据处理和设备交互等场景。

2402_88461821的博客 1787

郑州轻工业大学JAVA实验四IO流与文件操作

例如,它提供了print()和println()方法,可以将数据写入到输出流中,并自动添加换行符。(4).uufferedInputStream/BuufferedOutputStream:带缓存的输入流和输出流,它们可以提高字节流的读写效率,减少系统的IO操作次数。可以使用FileOutputStream类的构造方法创建一个文件输出流,然后通过该流写入数据到文件中。可以使用RandomAccessFile类的构造方法创建一个文件,然后通过该文件写入数据到文件中。基于不同的分类依据,说说流的分类。

m0_74582075的博客 3582

Java学习之IO流与文件操作

Java中文件操作和IO流是处理输入输出的核心部分,涉及文件读写、目录操作以及数据流处理等功能。Java IO流分为字节流和字符流,分别处理二进制数据和文本数据。

qq_69510169的博客 618

java基础:关于java流与文件操作

1、描述:流是字节数据或字符数据序列。Java采用输入流对象和输出流对象来支持程序对数据的输入和输出。输入流对象提供了数据从源点流向程序的管道,程序可以从输入流对象读取数据;输出流对象提供了数据从程序流向终点的管道,程序通过该管道把数据写到终点。所有的关于输入/输出的类都包含在java.io的包中。 2、File类:它主要关心的是文件的具体属性,而非内容,定义了许多方法,实现对文件的创建、删除等

congcongsuiyue的专栏 548

Java11 文件操作和io流

java.io.File 类是java提供的针对磁盘中文件和目录对象的一个类。如果进行序列化和反序列化的时候类文件不能保持一致,写一个静态常量serialVersionUID。2.序列化对象的成员变量也一定要实现可序列化,实现Serializable接口。3.反序列化类文件信息要和序列化保持一致,不然会抛出异常。操作的最小单元:byte-----包含音频视频图片等。BufferedInputStream类。ObjectOutputStream类。ObjectInputStream类。

Stringzhua的博客 948

Java I/O流与文件操作:解锁数据处理的奥秘

在 Java 编程的庞大体系中,I/O 流与文件操作是极为关键的部分,是实现数据持久化存储、程序间数据交互以及与外部设备通信的基础。通过对字节流和字符流的深入理解,我们掌握了不同类型数据的高效处理方式。字节流以字节为单位,适用于处理二进制数据,如图片、音频、视频等文件,为我们提供了直接操作底层数据的能力;字符流则以字符为单位,基于 Unicode 编码,专门用于处理文本数据,能够正确处理各种字符集的文本,避免了字节流在处理文本时可能出现的字符编码问题。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 1084
上一篇: Io包下的其他对象
下一篇: 缓冲字符流
日依
博客等级 码龄15年 165粉丝 165原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值