IO流 第一部分 (OutputStreamWriter BufferOutputStream) 转换流 超类为Reader和Writer 是字符流通向字节流的桥梁:可使用指定的字符编码表,将要写入流中的字符编码成字节 InputStreamReader inputStreamReader = new InputStreamReader(new FileInputStream("d://deo2. txt")); char[] b = new char[2]; int len = 0; 子类可以直接操作文件,但是不能指定编码格式,默认使用系统默认的格式 FileReader fr = new FileReader("a.txt"); 缓冲流 提高输入输出的效率 分为字节缓冲流与字符缓冲流 bos.write(bytes); bos.write(bytes, 3, 2)
字节流,字符流基本概念 File类不支持文件内容处理,如果要处理文件内容,必须要通过流的操作模式来完成 在java.io包中,流分为两种:字节流与字符流 字节流:读写数据以字节为基本单位(处理二进制文件 /数据的时候使用) 字符流:独写数据以字符为基本单位(处理文本文档/数据的时候使用) 2. ; import java.io.FileOutputStream; import java.io.IOException; public class IODemo2 { //实现文件的复制 字符流 1)Reader:(输入)把输入设备读取到内存中 2)Writer:(输出)把内存中的数据写入到输出设备中 字符流与字节流用法基本一致,一个典型的区别是: 字节流的读写操作以byte为单位, 缓冲区就是byte[] 字符流的读写操作以char为单位,缓冲区就是char[] 示例: 1)不带缓冲区 import java.io.FileReader; import java.io.FileWriter
什么是IO流 先看一段百度上的解释: 当然:如果你看不懂,那么你只需要记住下面3句话. 1. (1).我们知道,每个人家里喝的水都是从自来水厂来的,自来水厂的水又是从水源地来的, (2).水是通过水管来的。 (3).那么这当中的水流,便可以理解为IO流。 2. 那么JAVA中的IO流呢; (1).在java中,java就是自来水厂,水源地就是源,家就是目的 (2). (2).字符流 以下就是字符流的详细: 字符流是字节流的类似。 创建转换流对象 输 出流对象, 输出的编码 OutputStreamWriter osw = new OutputStreamWriter(os,“ISO-8859-1”); 以上就是IO流的简单介绍
跳转到总目录 文章目录 01、File类的使用 1.1、File类的实例化 1.2、File类的常用方法1 1.3、File类的常用方法2 1.4、课后练习 02、IO流原理及流的分类 2.1 、IO流原理 2.2、流的分类 2.3、IO 流体系 04、节点流(或文件流) 4.1、FileReader读入数据的基本操作 4.2、FileReader中使用read(char[] cbuf)读入数据 2"); } //要想删除成功,io4文件目录下不能有子目录或文件 File file3 = new File("D:\\io\\io1\\io4"); file3 = new File("D:\\io ; import java.io.IOException; import java.io.InputStreamReader; /** * 其他流的使用 * 1.标准的输入、输出流 * 2.打印流 * ; import java.io.*; /** * 对象流的使用 * 1.ObjectInputStream 和 ObjectOutputStream * 2.作用:用于存储和读取基本数据类型数据或对象的处理流
目录 IO流使用cout进行输出cout格式化调整字节宽度以及填充字符setf()相关字符串流文件流 IO流 C++兼容C,所以C中的输入输出函数依然可以在C++中使用,但是直接把C的那套输入输出搬到 a3, a4; char ch; ss1 >> a1 >> ch >> a2 >> ch >> a3 >> ch >> a4; cout << a1 << " " << a2 << " " "; ss2 << num << ch << str; cout << ss2.str() << endl; return 0; } 输出: 100 192 168 0 1 . 3.14159 文件流 头文件: #include<fstream> 文件流常用函 描述 open 打开文件 is_open 文件是否被打开 close 关闭文件 getline 读取一行 read 输入(读)到对象 将缓冲区的数据写出到文件,再清空它 tellg 输入(读)文件指针位置 tellp 输出(写)文件指针位置 seekg 设置输入(读)文件指针位置 seekp 设置输出(写)文件指针位置 eof 是否到了流尾部
IO流 文件操作 File类 作用 java.io.File 类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作 构造方法 public File(String pathname ,为输出流,把电脑磁盘当中的数据加载到程序当中为输入流 示例图 IO的分类 根据数据的流向分: 输入流 把数据从 其他设备 上读取到 内存 中的流。 OutputStream: 字节输出流 作用:java.io.OutputStream 抽象类是表示字节输出流的所有类的超类,将指定的字节信息写出到目的地 基本方法 public void close( Reader类 作用 java.io.Reader 抽象类是表示用于读取字符流的所有类的超类,可以读取字符信息到内存中。 字符缓冲流: BufferedReader , BufferedWriter 基本原理 缓冲流的基本原理,是在创建流对象时,会创建一个内置的默认大小的缓冲区数组, 通过缓冲区读写,减少系统IO 次数
字节流处理字节数据 字符流处理字符数据 按处理数据分为节点流和处理流 节点流 文件流 数组流 管道流 处理流 缓冲流 转换流 基本数据流 对象序列化流 打印控制流 IO流属于阻塞操作,一般项目中应放到子线程中 2. = (User) ois.readObject(); System.out.println("读入成功\n" + user2.getId() + "--" + user2.getEmail file2.exists()){ file2.createNewFile(); } FileInputStream fis = new FileInputStream file2.exists()){ file2.createNewFile(); } FileInputStream fis =
之前我们使用io流,都是需要一个中间数组,管道流可以直接输入流对接输出流,一般和多线程配合使用,当读取流中没数据时会阻塞当前的线程,对其他线程没有影响 定义一个类Read实现Runable接口,实现run ()方法,构造方法传递PipedInputStream对象 读取流里面的数据 定义一个类Write实现Runable接口,实现run()方法,构造方法传递PipedOutputStream对象 写入流里面数据 获取PipedInputStream对象,new出来 获取PipedOutputStream对象,new出来 调用PipedInputStream对象的connect()方法,对接输出流,参数:PipedOutputStream 对象 开启两个线程执行读写 import java.io.IOException; import java.io.PipedInputStream; import java.io.PipedOutputStream
IO流的分类可以分为以下三种: 第一种:输入流和输出流 按照流的流向来分,可以分为输入流和输出流。输入,输出都是从程序运行所在内存的角度来划分的。 输出流:只能向其写入数据,而不能从中读取数据。 由OutputStream和Writer作为基类 第二种:字节流和字符流 字节流和字符流的用法几乎完全一样,区别在于字节流和字符流所操作的数据单元不同。 字符流操作的数据单元是16为的字符,由Reader和Writer作为基类 第三种:节点流和处理流 按照流的角色来分,可以分为节点流和处理流。 节点流:可以从向一个特定的IO设备(如磁盘、网络)读/写数据的流。也被称为低级流。 处理流:用于对一个已存在的流进行连接或封装,通过封装后的流来实现数据读/写功能。
http://blog.csdn.net/a107494639/article/details/7586365 1.IO流是干什么的? IO流指 的是输入输出流,用来处理设备上的数据。这里的设备指硬盘,内存,键盘录入,网络传输等。 2.IO流的分类? 按处理数据类型来分:字节流和字符流 按流的方向来分:输入流和输入流。 PS:初学流的时候,新手很容易搞不清什么时候用输入流,什么时候用输出流。 简单来说,当需要读数据的时候,需要使用输入流,当需要写数据的时候,需要使用输出流。我以前是这么记忆的:“读入写出”,要读的话就用输入流,要写的话,就用输出流。经常想起这4个字,慢慢就记熟下来了。 因此,只要是纯文本数据处理,优先考虑使用字符流。其他情况就使用字节流。 4.IO流类的关系(列举了其中一部分) ?
(如:复制一段文字或者图片) 2.编码问题 介绍三种 gbk编码:中文2个字节,英文1个字节 utf-8:中文3个字节 英文1个字节 utf-16be:中文2个字节 英文2个字节 当你的字节序列是某种编码时 Java是双字节编码utf-16be 3.File类 java.io.File类用于表示文件(目录), File类只用于表示文件的信息(名称,大小等)不能用于文件内容的访问 第一个标识中需要介绍 (1).java文件模式 在磁盘中的文件是byte存储的,是数据的集合 (2).打开文件 有两种模式 rw(读写)和r(读); RandomAccessFile raf=new RandomAccessFile 总结: (一)Java中,设计了四个抽象类来表示流: 1.InputStream :字节流 读取数据 2.OutputStream:字节流 写入数据 3.Reader:字符流 读取数据 4.Writer :字符流 写入数据 其他多种多样的流都是继承了它们,并进行了装饰而派生出来的加强版 (二)使用步骤: 1.创建File对象 2.创建流对象 3.操作 读 ,写 4关闭流
Java的I/O流提供了读写数据的标准方法。任何Java中表示数据源的对象都会提供以数据流的方式读写它的数据的方法。 Java.io是大多数面向数据流的输入/输出类的主要软件包。 此外,Java也对块传输提供支持,在核心库 java.nio中采用的便是块IO。 流IO的好处是简单易用,缺点是效率较低。块IO效率很高,但编程比较复杂。 Java.IO流类库 1. io流的四个基本类 java.io包中包含了流式I/O所需要的所有类。 在java.io包中, java.io.InputStream 表示字节输入流, java.io.OutputStream表示字节输出流,处于java.io包最顶层。 2. io流的具体分类 一、按I/O类型来总体分类: 1.
IO流大家肯定不陌生,简单整理了一下常用IO流基本用法,其他的IO流还有很多以后有时间在整理。 1.基本概念 IO:Java对数据的操作是通过流的方式,IO流用来处理设备之间的数据传输,上传文件和下载文件,Java用于操作流的对象都在IO包中。 2.IO流的分类 图示:(主要IO流) 3.字节流 (1).字节流基类 1).InputStream InputStream:字节输入流基类,抽象类是表示字节输入流的所有类的超类。 = -1) { System.out.print(new String(b, 0, i2) + " ");// AB CD } //关闭IO流 inputStream2.close(); 注: 一次读取一个字节数组 ,提高了操作效率,IO流使用完毕一定要关闭。
IO流 第一部分 (outputStream/InputStream Writer/Redaer) IO流对象中输入和输出是相辅相成的,输出什么,就可以输入什么. IO的命名方式为前半部分能干什么,后半部分是父类的名字. fos.write(bytes); //写字节数组的一部分,开始索引,写几个 fos.write(bytes, 1, 2) fw.flush(); //写字符数组一部分 fw.write(c, 2, 2); fw.flush(); //写如字符串
IO流总结 1.什么是IO Java中I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列。 此外,Java也对块传输提供支持,在核心库 java.nio中采用的便是块IO。 流IO的好处是简单易用,缺点是效率较低。块IO效率很高,但编程比较复杂。 Java.IO流类库 1. io流的四个基本类 java.io包中包含了流式I/O所需要的所有类。 在java.io包中, java.io.InputStream 表示字节输入流, java.io.OutputStream表示字节输出流,处于java.io包最顶层。 2. io流的具体分类 一、按I/O类型来总体分类: 1.
InputStream和OutputStream两个抽象类构成了读写IO体系的框架基础。 字节流虽然可以操作任何的数据形式,但是对于占用多个字节的字符却不是很方便,需要知道,所以在JAVA中有专门提供了对于字符流的两个抽象类Reader和Writer 分类: IO流按照操作对象:字节流和字符流 按照流的方向分:输入流和输出流 ? 主要的流的体系图:每个输入流都有相应的输出流 在抽象类 Input/OutputStream ReaderWriter 后面跟着具体的实现子类 ? 字符流 字符流主要对于处理文本内容的读写十分的方便,按照字符的输入和输出和字节流操作上没有区别,但是在读取和写入时的操作单位不再是byte。 ?
我们平时在用流的时候是不是有的时候很纠结,不知道要用哪一个,流对象那么多。 整理一下,来看看流操作的基本规律。 明确源和目的: 源: 输入流 >>>>> InputStream Reader 目的:输入流 >>>>> OutputStream Writer 2, 操作的数据是否是纯文本: 是:字符流 否:字节流 3,当体系明确后,再明确要使用哪个具体的对象 通过设备来进行区分: 源设备:内存,硬盘,键盘 目的设备:内存,硬盘,控制台 来个例子看看 注: UTF-8:一个字符3个字节 GBK:一个字符2个字节
https://blog.csdn.net/huyuyang6688/article/details/43762149 IO流的概念 IO流是从数据从一处流向另一处的抽象,就像水流从管道的一端流向另一端一样 Writer:继承自Writer的流都是程序用于向外输出数据的,且数据单位都是字符(16位)。 IO流的分类 ★ 按流向来分类,IO流的可以分为输入流和输出流。 顾名思义,字节流是以字节为基本单位来传输数据,字符流是以占用2个字节的Unicode字符为基本单位来传输数据。 ; 2. ★ 还可以根据 IO流的功能来分类,分为节点流和处理流。节点流从或向一个特定的节点读写数据;处理流是对已经存在的一个流的连接和封装,可以看做是对已经存在的流的优化或过滤。
image.png FileOutputStream try { FileOutputStream fileOutputStream = new FileOutputStream(file.getPath()); byte[] bytes = aa.getBytes(); try { fileOutputStream.write(bytes); fileOutputS
最近有个账单加解密的需求,正好用到 IO 流,借此机会复习一下这方面的知识,巩固记忆。 参考:1、https://mp.weixin.qq.com/s/B55s7a2fWmEEs4BAiRPmvA2、https://www.cnblogs.com/shuaiguoguo/p/8883862 一、IO 的分类 IO:Java对数据的操作是通过流的方式,IO流用来处理设备之间的数据传输,上传文件和下载文件,Java用于操作流的对象都在IO包中。 IO的分类如下: image.png 还可以根据操作对象来进行分类 image.png 主要的IO流: image.png image.png 二、字节流 操作byte类型数据,主要操作类是OutputStream 但要先刷新它 abstract void close() // 刷新该流的缓冲 abstract void flush() 四、字节流与字符流相互转换 整个IO包实际上分为字节流和字符流