字节流:以字节为单位进行读写,二进制文件:图片,音频,视频等非字符数据只能用字节流来操作。
package com.gc.file; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; public class InputStreamDemo { /** * 字节流---底层以byte为单位进行操作 * 字符流不能读取字节文件,只能用来读取文本数据 * 字符流1次读取2个字节,而字节流1次只读取1个字节 * * 字节流用来处理图片、音频、视频等字节文件 * 对于字符文件,使用专门的字符流操作! * @throws IOException */ public static void main(String[] args) throws IOException { //以下使用字节流操作文本数据,仅为了演示字节流的用法,真正操作字符数据,请使用Reader和Writer! writeFileWithOutputStream(); readFileWithInputStream(); copyFileWithBuffer(); copyFileWithJavaBuffer(); } /** * 使用java提供的缓冲区对象进行操作 * 很奇怪,如果不自定义一个缓冲区,拷贝很慢 * 所以,还是自定义一个缓冲区来使用 * 哎,这是为什么呢? * @throws IOException */ private static void copyFileWithJavaBuffer() throws IOException { FileInputStream fis = new FileInputStream("temp\\a.jpg"); FileOutputStream fos = new FileOutputStream("temp\\b.jpg"); BufferedInputStream bufis = new BufferedInputStream(fis);//缓冲读 BufferedOutputStream bufos = new BufferedOutputStream(fos);//缓冲写 byte[] bBuf = new byte[1024];//仍然提供外部缓冲区,不然读写很慢 int len = 0; while((len=fis.read(bBuf))!=-1) { fos.write(bBuf,0,len); } bufis.close();//内部会调用fis.close() bufos.close();//内部会调用fos.close() } /** * 自定义缓冲区来操作 * @throws IOException */ private static void copyFileWithBuffer() throws IOException { FileInputStream fis = new FileInputStream("temp\\a.jpg"); FileOutputStream fos = new FileOutputStream("temp\\b.jpg"); byte[] bBuf = new byte[1024];//操作字节数据,定义字节数组作为缓冲区(而操作字符数据,则定义字符数组作为缓冲区) int len = 0; while((len=fis.read(bBuf))!=-1) { fos.write(bBuf, 0, len); //fos.flush();//这里的flush()没有任何用,因为方法的实现为空 } fis.close(); fos.close(); } private static void readFileWithInputStream() throws FileNotFoundException, IOException { FileInputStream fis = new FileInputStream("temp\\byte.txt"); byte[] buf = new byte[1024]; int len = 0; while((len=fis.read(buf))!=-1) { System.out.println(new String(buf,0,len)); } } private static void writeFileWithOutputStream() throws FileNotFoundException, IOException { FileOutputStream fis = new FileOutputStream("temp\\byte.txt"); byte[] b = "hello".getBytes(); fis.write(b); fis.close(); } }
相关推荐
2、常用21个IO流:FileWriter、FileReader、CharArrayReader、CharArrayWriter、CharSequence、OutputStreamWriter、FileOutputStream、InputStreamReader、PrintWriter、BufferedReader、InputStream、...
=分类: 方向 单位== ==单位 方向 输入流 输出流== ==字节流 InputStream OutputStream 主要用来对影像文件或者媒体== ==字符流 Reader Writer 主要用来对文本文件进行操作==
java io流总结,包括字符流,字节流,很详细。inputStream outputStream
字节流:按照字节读取数据(InputStream、OutputStream) 字符流:按照字符读取数据(Reader、Writer) 功能不同: 节点流:可以直接从数据源或目的地读写数据。 处理流:不直接连接到数据源或目的地,是处理流的流...
InputStream和OutputStream 1.DataInputStream,DataOutputStream 从Stream里读取基本类型的数据 BufferedReader,BufferedWriter 从Reader/Writer里读取基本类型的数据 2.BufferedInputStream,...
字节流与字符流的练习文档,内附一个简要的记事本综合文档。
【字节流】 InputStream OutputStream FileInputStream FileOutputStream DataInputStream DataOutputStream BufferedInputStream BufferedOutputStream ObjectInputStream ObjectOutputStream ByteArrayInputStream...
字节流:InputStream OutputStream 字符流:Reader Writer 二、流功能分析 读取流是从输入设备或数据对象中读取数据到程序,用程序进行处理读入的数据,写出流是把程序处理的数据输出到 输出设备上...
File类的构造方法3.File类常用方法三、IO流之字节流1.什么是字节流2.字节流的分类3.字节输入流(InputStream)3.1.InputStream类3.1.1.定义以及常用方法3.1.2.用法3.2. FileInputStream类3.2.1.定义以及常用方法...
InputStream 是所有的输入字节流的父类,它是一个抽象类。 ByteArrayInputStream、StringBufferInputStream、FileInputStream 是三种基本的介质流,它们分别从Byte 数组、StringBuffer、和本地文件中读取数据。...
- 字节流对象 - InputStream - OutputStream - 字符流对象 - Reader - Writer - 字节流与字符流的转换 - 新潮的 NIO - 缓冲区(Buffer) - 通道(Channel) - 示例:文件拷贝案例 - BIO 和 NIO 拷贝文件...
总结了常用的 RandomAccessFile 随机存取文件类 InputStream 字节输入流 OutputStream 字节输出流 Reader 字符输入流 Writer 字符输出流
在字节流中输出数据主要是使用OutputStream完成,输入使的是InputStream,在字符流中输出主要是使用Writer类完成,输入流主要使用Reader类完成。(这四个都是抽象类)java中提供了专用于输入输出功能的包Java.io,...
字节输入流(InputStream)和字节输出流(OutputStream):用于处理二进制数据,以字节为单位进行读写。常见的实现类包括FileInputStream、FileOutputStream等。 字符流: 字符输入流(Reader)和字符输出流...
本篇文章主要介绍了Java的IO流分为字符流(Reader,Writer)和字节流(InputStream,OutputStream),字节流顾名思义字节流就是将文件的内容读取到字节数组,对初学者很有用,有需要的朋友可以了解一下。
Java IO五类一接口 文件操作类File、...字节输出流OutputStream、字节输入流InputStream 字符输出流Writer、字符输入流Reader 打印流、输入输出重定向 Scanner类 字符编码 序列化操作标识接口Serialiable
* io流 运用 * 注意:只要子类 包含以下类名字的,就是该... * InputStream----- 输入字节流 * Reader-------- 输入字符流 * OutputStream-----输出字节流 * Writer --------输出字符流
• 输入流:数据源到程序(InputStream、Reader读进来) • 输出流:程序到目的地(OutputStream、Writer写出去) 流分类 : • 节点流:可以直接从数据源或目的地读写数据 • 处理流(包装流):不直接连接到数据源或目的...
什么是IO流? I:input 输入流;read 读取数据 ...文件操作处理单元分类:字节流和字符流 FileInputStream:文件操作输入字节流 FileOutputStream:文件操作输出字节流 FileReader:文件操作输入字节流 FileWri