IO流的简单学习

JAVA学习——IO流 1. I 指Input,称为输入流:负责把数据读到内存中去2. O 指Output,称为输出流:负责写数据出去3. IO流的分类第一种:按流的方向分:输入流和输出流第二种:按流中数据的最小单位分:字节流和字符流总结流的四大类:字节输入流 : 以内存为基准,来自磁盘文件/网络中的数据以字节的形式读入到内存中去的流字节输出流 : 以内存为基准,把内存中的数据以字节写出到磁盘文件或者网络中去的流。字符输入流 : 以内存为基准,来自磁盘文件/网络中的数据以字符的形式读入到内存中去的流。 阅读详情

IO流

​ IO:输入/输出(Input/Output)

​ 流:对数据传输的抽象说法。

​ IO流:用来处理设备间数据的传输问题 eg:文件复制、文件上传、文件下载

分类

​ 数据的流向: 输入流、输出流

​ 数据类型:字节流、字符流

字节流

abstract class InputStream 		//字节输入流的超类
abstract class OutPutStream  	//字节输出流的超类
    class FileOutputStram 		//将数据写入File或FileDescriptor的输出流

eg:

public static void main(String[] args) throws IOException {
        FileOutputStream fileOutputStream = new FileOutputStream("D:\\java.txt");
        /*
            new时做哪些过程:
                1.调用系统功能创建文件
                2.创建字节输出流对象
                3.让字节输出流指向已创建好的对象
         */
        fileOutputStream.write(97);

        //与IO流相关的,都需要释放资源
        fileOutputStream.close();
    }

写入数据的方式(输出流)

void write(int b)						//就指定的字节写入该文件输出流、一次写一个字节数据
void write(byte[] b)					//将指定的字节数组写入此文件输出流
void write(byte[] b,int off,int len)	//从指定的字节数组开始以len字节,从off位置开始写入此输出流

eg:

public static void main(String[] args) throws IOException {
        FileOutputStream fileOutputStream = new FileOutputStream("D:\\java.txt");

        fileOutputStream.write(97); //a


        FileOutputStream fByte = new FileOutputStream("D:\\javaByte.txt");
        byte[] bytes = {97,98,99};
        fByte.write(bytes); //abc


        FileOutputStream fBytes = new FileOutputStream("D:\\javaBytes.txt");
        byte[] bytesLen = {97,98,99,100,101};
        fBytes.write(bytesLen,1,3); //bcd


        fileOutputStream.close();
        fByte.close();
        fBytes.close();
    }

如何换行:

​ window:\r\n linux:\n mac:\r

public static void main(String[] args) throws IOException {
        FileOutputStream fileOutputStream = new FileOutputStream("D:\\java.txt");

        for (int i = 0; i < 10; i++) {
            fileOutputStream.write("hello".getBytes());
            fileOutputStream.write("\r\n".getBytes());
        }

        fileOutputStream.close();

    }

如何追加写入:

​ 通过构造方法

FileOutputStream(String name,boolean append) //创建文件输出流以指定的名称写入文件

eg:

public static void main(String[] args) throws IOException {
        FileOutputStream fileOutputStream = new FileOutputStream("D:\\java.txt",true);

        fileOutputStream.write("hei".getBytes());
        fileOutputStream.write("\r\n".getBytes());


        fileOutputStream.close();
    }

读数据(输入流)

    public static void main(String[] args) throws IOException {
        FileInputStream fis = new FileInputStream("D:\\java.txt");
//        byte[] bys = new  byte[10];
//
//        int len = fis.read(bys);
//        System.out.println(len);//10 读到的个数
//        System.out.println(new String(bys)); //hello /r/n hel

        byte[] bytes = new byte[1024]; //1024及其整数倍
        int len;
        while ((len = fis.read(bytes))!=-1) { //当fis.read(..) == -1 时 说明文件内容已读完
            System.out.println(new String(bytes,0,len));
        }
        fis.close();
    }

字节缓冲流

class BufferedOutputStream //设置这样的输出流、可以向底层写入字节、而不必每次写入都调用系统
class BufferInputStream		//更高效

构方:

BufferedOutputStream(OutputStream out)
BufferedOutputStream(OutputStream out , int size)
BufferInputStream(InputStream in)

注:字节缓冲流 仅仅是提供缓冲区,而读写还是得依赖字节流

eg:

    public static void main(String[] args) throws IOException {
    //先进行输出流再进行输入流
//        BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("D:\\java.txt"));
        BufferedInputStream bis = new BufferedInputStream(new FileInputStream("D:\\java.txt"));

//        bos.write("hello".getBytes());

        int by;
        while((by = bis.read())!=-1){
            System.out.print((char)by); //hello
        }


        bis.close();
//        bos.close();

    }

字符流

​ 由于字节流不便于操作中文。于是Java提供字符流。

字符流 = 字节流 + 编码表 【汉字存储时,都让第一个字节处于负数】

InputStramReader		//字符输入流
OutputStreamWriter		//字符输出流

构造方法

OutputStreamWriter(OutputStream out)						//使用默认字符编码
OutputStreamWriter(OutputStream out,String charsetName)		//使用指定的字符编码

InputStramReader(InputStramReader in)
InputStramReader(InputStramReader in,String charsetName)	

eg:

 public static void main(String[] args) throws IOException {
        FileOutputStream fos = new FileOutputStream("D:\\java.txt");
        OutputStreamWriter ops = new OutputStreamWriter(fos);

        ops.write("学习");
        ops.close();

        FileInputStream fis = new FileInputStream("D:\\java.txt");
        InputStreamReader isr = new InputStreamReader(fis);

        int ch;
        while ((ch = isr.read())!=-1)
            System.out.print((char)ch);
        isr.close(); //学习
    }

写数据

void write(int c)							//写入一个字符
void write(char[] cbuf)						//写入一个字符数组
void write(char[] cbuf,int off,int len)		//写入字符数组的一部分
void write(String str)						//写入一个字符串
void write(String,int off,int len)			//写入一个字符串的一部分

eg:

public static void main(String[] args) throws IOException {
        OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("D:\\java.txt"));

        osw.write(97); //a

        osw.flush();    //刷新流,字符流相对于字节流有个缓冲区

        char[] chars = {'a','b','c'};
        osw.write(chars); //abc
        osw.flush();

        String str = "wow";
        osw.write(str); //wow
        osw.flush();

        osw.close();
    }

读数据

int read()				//一次读一个字符数据
int read(char[] cbuf)	//一次读一个字符数组数据

eg:

  public static void main(String[] args) throws IOException {
        InputStreamReader isr = new InputStreamReader(new FileInputStream("D:\\java.txt"));

//        int ch;
//        while ((ch=isr.read())!=-1){
//            System.out.print((char)ch); //wow
//        }

        char[] chs = new char[1024];
        int len;
        while ((len = isr.read(chs))!= -1){
            System.out.print(new String(chs,0,len)); //wow
        }

        isr.close();
    }

字符缓冲流

BufferedReader //高效读取
BufferedWriter 
public static void main(String[] args) throws IOException {
        FileWriter fw = new FileWriter("D:\\java.txt");
        BufferedWriter bw = new BufferedWriter(fw);

        bw.write("hello");//hello
        bw.close();

        FileReader fr = new FileReader("D:\\java.txt");
        BufferedReader br = new BufferedReader(fr);

        char[] chars = new char[1024];
        int len;
        while((len = br.read(chars))!=-1)
            System.out.print(new String(chars)); //hello

        br.close();
    }

特有功能

BufferedWriter
	void newLine()	//写一行分隔符
BufferedReader
	public String readLint()	//读一行文字,读完了为null

eg:

public static void main(String[] args) throws IOException {
        FileWriter fw = new FileWriter("D:\\java.txt");
        BufferedWriter bw = new BufferedWriter(fw);

        bw.write("hello");//hello
        bw.newLine();
        bw.write("World");
        bw.close();

        FileReader fr = new FileReader("D:\\java.txt");
        BufferedReader br = new BufferedReader(fr);

        String line;
        while ((line = br.readLine())!=null)
            System.out.println(line);
        /*
            hello
            World
         */

        br.close();
    }
C++:C++的IO流 一篇带你完全掌握C++的IO流 阅读详情

相关推荐

COCOS 3.8 接入高德定位SDK

/微信登录所必须的code。//是否获得code。

八喜互动 1993

Java学习之IO流的简单使用

在我们平时使用图形化界面的时候,会发现来建立一个文件夹或者一个文档的时候很简单,只需要在桌面单击鼠标右键就可以了。但是,在我们写项目的时候想要把一些东西存到文件夹里面怎么办呐? 不可能程序运行到需要文件夹的时候我再来到桌面或者哪里来手动建立一个文件或者文档吧?不要怀疑自己这样操作是肯定不行的,那有的人就会想了那我们怎么办呐?这不博主就来帮大家的忙了嘛,在java中有个东西叫做IO流就可以很好的解决这个问题。什么是IO流呐?接下来就由我来带领大家了解什么是IO流! ...

码小春的博客 684

vc mfc listctrl使用虚拟列表 虚拟列表用法

note 虚拟列表可有效加载大量数据 需要处理listctrl的 LVN_GETDISPINFO 消息 使用虚拟列表 不能 使用 insert的方法插入数据,而是告诉listctrl 当前要显示多少行 使用SetItemCount函数告诉listctrl当前显示多少行 使用虚拟列表需要自己维护数据源 使用 添加list ctrl 控件 将其Owner Data 属性 设置为 True 添加...

知其所以然 398

IO流学习简单记录

IO流分类 方向: 输入流,输出流 内容: 字节流, 字符流 性质: 节点流, 装饰流(如缓冲流BufferIO, 数据流DataIO) -&gt; 装饰者模式 以数据输入输出流为例, 写了一个简单的小demo. 代码如下 package com.iotest; import java.io.*; public class DataIOTest { public static ...

忽然也慌了神 193

使用DCA1000和EVM板进行数据采集

目录 1. 准备工作 1.1 硬件 1.2 软件 2. 驱动安装 3. 设置静态IP地址 4. 采集数据 5. 采集的数据文件的格式 6. 数据采集存储的数据流 参考资料 1. 准备工作 1.1 硬件 EVM板,电源线(5V,>2.5A),USB线 DCA1000,电源线(5V,>2A),USB线,网线,60pin Samtec cable 1.2 软件 mmWave Studio Matlab Runtime Engine v8.5.1 将DCA1000和EVM板

qq_42235129的博客 1万+

力科PCIE协议分析仪summit T3-8使用指南

力科PCIE协议分析仪summit T3-8使用指南

wq897387的专栏 2005

Java之IO流简单学习

文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结 前言 一、pandas是什么? 示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。 二、使用步骤 1.引入库 代码如下(示例): import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns import warnings warnings.filterwarnings(

wenhuabuzhijian的博客 193

Xilinx ERNIC RoCEv2 FPGA实现与QP队列深度解析

本文深入解析Xilinx ERNIC RoCEv2在FPGA上的实现,重点剖析QP队列对的管理机制与深度优化策略。通过Verilog代码示例和工程实战,详细介绍了如何实现高吞吐量、低延迟的RDMA硬件卸载方案,为金融交易和数据中心应用提供性能优化指导。

solidity8miner的博客 877

IO流学习简单总结

IO流学习简单总结 字节流和字符流的区别 处理数据的方式不同:字节流读取的时候,读到一个字节就返回一个字节;字符流使用了字节流读到一个或多个字节时,先去查指定的编码表,再将查到的字符返回。 处理单元和操作对象不同:字符流处理的单元为2个字节的Unicode字符,分别操作字符、字符数组或字符串,而字节流处理单元为1个字节,操作字节和字节数组。 字节流可以处理所有类型数据,如:图片、MP3、AVI视频文件等,而字符流只能处理字符数据。只要是处理纯文本数据,就要优先考虑使用字符流,除此之外都用字节流。

weixin_44247505的博客 132

海康visionmaster开发笔记10-集成HALCON第三方算子到VM工具箱的方法

海康visionmaster开发笔记10-HALCON第三方算子到VM工具箱的方法

视觉人机器视觉的博客 4347

OpenClaw赚钱实录:从“养龙虾“到可持续变现的实践指南——OpenClaw的赚钱底层逻辑与“记忆”革命

AI 的商业价值不在于替代思考,而在于沉淀关系。当 Agent 记住你的偏好、你的历史、你的目标,它就不再是冷冰冰的软件,而是成为数字化的关系资产。这种资产的稀缺性不在于技术复杂度,而在于时间无法被压缩——你无法用更好的算法替代 3 个月的协作记忆。在这场“记忆革命”中,护城河不是模型参数,而是用户与 AI 共同书写的历史。OpenClaw 用一套优雅的文件系统架构,将这种历史转化为可积累、可复用、可变现的数字资产。从“计算即服务”(CaaS)到“记忆即服务”(MaaS)。

冯·诺依曼 1341

对io流学习的简单总结

IO流,即数据流,由序的一串字节序列。在java.io包下。 输入输出的就是字节,这些字节就是程序中的数据。输入流就是将数据从外部传输到程序中的去(如吧硬盘中某个文件中的数据读入到程序中),而输出流就是把数据从程序中传输到外部(如吧数据写进一个硬盘中的一个文档中。) 1.File  指的是文件和目录路径名的抽象表示形式。 File的字段 pathSeparator

Vitens的专栏 549

华为OD机试真题 新系统2026-04-15 Java&Go 实现【小猫钓鱼纸牌游戏】

有两名玩家甲和乙,他们玩一种“小猫钓鱼”扑克牌游戏。扑克牌为A、2、3、....J、Q、K,不考虑花色都用1-13来表示,然后给甲,乙两人各发n张牌,按给定顺序排成队列,这些牌背面朝上,正面朝下放置,队列的第一个元素是背面的第一张牌。 游戏规则如下:

MISAYAONE的博客 354

菜鸟学习之简单的java-IO流及其转换

刚开始学习一点IO流,进行了一点简单的总结,分享出来。 IO流分为 字节流(**InputStream**、**OutputStream**)、 字符 流(**Reader**、**Writer**)两种。 1.**字节流** 字节流用途较广,可用于传输图片等所有的文件(包括二进制 文件)。字符也可使用字节流进行传输,只需...

qq_43384071的博客 332

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

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

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

IO流简单学习知识点

流是一组有顺序的,有起点和终点的字节/字符集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。 输入input 文件——》程序======输入流 输出output 文件《——程序======输出流 (站在程序角度来看是输出还是输入) 一、IO的分类     按照数据单位分类:     字节

Marcus Hold Coding 285

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

java io流相互转换,菜鸟学习之简单的java-IO流及其转换

刚开始学习一点IO流,进行了一点简单的总结,分享出来。IO流分为 字节流(**InputStream**、**OutputStream**)、字符 流(**Reader**、**Writer**)两种。1.**字节流**字节流用途较广,可用于传输图片等所有的文件(包括二进制文件)。字符也可使用字节流进行传输,只需要进行相应的包装即可(*InputStreamReader*)。2.**字符流**...

weixin_39739234的博客 197

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

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

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

weixin_58694902的博客 178

java IO流学习

##简单的IO流学习 String filePath="D:\\chromelog\\爱丁堡.txt"; File file = new File(filePath); if (!file.exists()){ try { boolean newFile = file.createNewFile(); if (newFile) Syst

smxr 157

Java中IO流的学习总结

看完视频中关于IO流的介绍,感觉

王雅瑾---上善若水,水善利万物而不争 1413

Java IO流中的 压缩流的使用

Java IO流中的 压缩流的使用前言所需要了解的类压缩文件解压文件最后是个关闭流的方法 前言 最近刚学IO流 - -、 ,本来是结束了IO的基本学习,发现有个压缩流。闲来无事,随便看看。 在次记录 若有错误,希望大家指出。 从网上查阅资料,java io支持三种格式,压缩文件大概就为 ZIP、JAR、GZ这些。在这里我只讲ZIP格式的,其他格式的好像特性跟ZIP的格式都差不多 大家有兴趣可以去试...

小大圣的博客 941

IO流的基本使用

我也是在整理自己的在这段时间的学习对于一IO的一些类有新的认识,整理一下 第一部分:IO流中分字符流和字节流, 字符流和字节流的区别 字节流的数据单元的是8位的字节,字符流的数据单元的是16位的字符, 字节流可以传输所有的文件,图片视频等但是字符流只能传输文本文件,文档,HTML等文本文档 字节流的基类是InputStream和OutputStream,字节流的基类是Reader和writer. ...

又是重名了 257

IO流(1)-概念

软件就是处理数据的工厂,犹如现实中加工厂:进货、加工、存储、售出。软件工作过程概括上就三步,第一步:工作的时候通过数据库读取、用户输入、磁盘读取、其他设备交互等渠道得到数据;第二步:对数据组合、排序、数学运算等处理;第三步:把这些数据输出到前端、数据库、其他设备、第三方系统。完成这三步软件的功能就结束了。 IO流在其中担任数据流转时搬运工具,例如我们想得到磁盘上的一个文件,就去读取这个文件,把它放在输入流中,由输入流把这个文件从磁盘上搬运到我们的系统中,然后我们的程序就read这个输入流拿到我们要的东..

zhanwuguo8346的博客 150

java IO流学习总结

https://www.cnblogs.com/hopeyes/p/9736642.html 近期学习了Java的IO流,尝试着总结一下。 java.io 包下的IO流很多: 其中,以Stream结尾的为字节流,以Writer或者Reader结尾的为字符流。所有的输入流都是抽象类IuputStream(字节输入流)或者抽象类Reader(字符输入流)的子类,所有的输出流都是抽象类Outp...

乔志勇笔记 1万+

【C++】IO流

本篇文章概述了C语言与C++中的输入输出机制。首先介绍了C语言的输入输出基础,随后解释了流的概念。接着详细探讨了C++中的IO流,包括标准IO流和文件IO流(涉及二进制与文本读写)。此外,还简要介绍了stringstream的用途。希望本篇文章对大家学习IO流有所帮助。

是阿建吖! 2660

Java IO流学习总结(一)—— IO流分类和常用IO流汇总

Java IO流学习总结(一)—— IO流分类和常用IO流汇总 IO流的分类: - 按流向分类:输入流、输出流 - 按操作对象分类:字节流、字符流 - 按功能分类:节点流、处理流 IO流的设计模式为装饰设计模式; 节点流为最“原生态”的流,实现了流的基本功能,需待操作的数据创建对象,如File(文件)、Byte[](字节数组)、Char[](字符数组)等 处理流包装节点...

Sirm23333 1万+

C++三大IO流类总结——标准IO流、文件IO流、内存IO流

C++三大IO流类总结——标准IO流、文件IO流、内存IO流 IO流类一览标准IO流标准IO流的条件状态条件状态标志条件状态函数标准IO流的输入输出成员函数代码示例条件状态put和get函数getline函数标准IO的格式控制输出格式控制缓冲区控制控制bool类型格式进制控制其他常用输出格式控制输入格式控制文件输入输出流字符串输入输出流类 IO流类一览 ios:流基类(抽象类) istrea...

black_kyatu的博客 5198
上一篇: File类
下一篇: 网络编程的简单学习
code_Floyed
博客等级 码龄7年 3粉丝 56原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值