Java流对象:InputStream、OutputStream、Reader、Writer

流对象使用完一般要用close方法关闭。释放资源。

InputStream 和OutPutStream

二者都是字节输入和输出的抽象父类,子字节为单位处理数据,每次读取、写入一个字节,适合处理二进制文件,如:音频、视频、图片等。

Redaer和writer是字符输入输出的抽象父类,以字符为单位处理数据,每次读取或写入一个字符,适合处理文本文件,实现类有FileReader和FileWriter.

附:Java代码实现图片文件的拷贝:

package com.buaa.comparable;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

public class testCopy {

public static void main(String[] args) {
copy();
}

static void copy(){
//1.创建数据源文件
File file = new File("e:\\picture1.jpg");
InputStream is = null;
File file1 = null;

OutputStream os = null;

try {
//搭建输入流管道
is = new FileInputStream(file);
//3.创建目的文件;
file1 = new File("e:\\picture2.jpg");
//4.搭建输出流管道
os = new FileOutputStream(file1);
int b = 0;

//每次从源文件读出一个字节,就像目标文件写入一个字节
while((b=is.read())!=-1){
os.write(b);
}

} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
if(os!=null){
os.close();
}else if (is!=null) {
is.close();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}

时间: 2024-10-09 23:08:01

Java流对象:InputStream、OutputStream、Reader、Writer的相关文章

java的inputstream, outputstream, reader和writer的比较

java的文件读写有多种方式,在此通过代码做以下比较. 比较一:FileWriter和FileReader public class MyCode1 { public static void main(String[] args) throws IOException { File f = new File("my.txt"); FileWriter fw = new FileWriter(f); fw.write("HELLO"); fw.close(); Fil

Java笔记:Java 流(Stream)、文件(File)和IO

更新时间:2018-1-7 12:27:21 更多请查看在线文集:http://android.52fhy.com/java/index.html java.io 包几乎包含了所有操作输入.输出需要的类.所有这些流类代表了输入源和输出目标. 输入输出流 简介 一个流被定义为一个数据序列.输入流用于从源读取数据,输出流用于向目标写数据. 下图是一个描述输入流和输出流的类层次图: 在java.io包中操作文件内容的主要有两大类:字节流.字符流,两类都分为输入和输出操作. 在字节流中输出数据主要是使用

java 流

import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.InputStream; public class Liu { public static void main(String[] args){ File file = new File("D:\\二阶段java\\0731\\111\\aaa.java"); int a = -

Java流(一)

流: 概念:Java中对文件的操作是以流的方式进行的.流是Java内存中的一组有序数据序列.Java将数据从源(文件.内存.键盘.网络)读入到内存中,形成了流,然后将这些流还可 以写到另外的目的地(文件.内存.控制台.网络),之所以称为流,是因为这个数据序列在不同时刻所操作的是源的不同部分. 理解:流, 可以看成是一根管道, 用来读取文件的数据原始的数据都是用过二进制的形式来进行数据的传输 In/Out流 流的分类     按照数据流的方向       输入流(Input), 输出流(Outpu

Java流家族之InputStream、OutputStream

Java流家族之InputStream 实现的接口: Closeable , AutoCloseable 已知直接子类: AudioInputStream , ByteArrayInputStream , FileInputStream , FilterInputStream , InputStream , ObjectInputStream PipedInputStream , SequenceInputStream , StringBufferInputStream 具体的方法: Modif

Java流关闭总结

ava中流中引用close方法总结 1.由Java.io包中的对象生成实例的close方法使用情况 BufferedInputStream bis = new BufferedInputStream(new InputStreamReader(new FileInputStream())) BufferedInputStream类 public void close() throws IOException { byte[] arrayOfByte; while ((arrayOfByte =

Java IO操作——字节流(OutputStream、InputStream)和字符流(Writer、Reader)

学习目标 掌握流的概念 掌握字节流与字符流的作用 掌握文件的标准操作步骤 掌握字节与字符操作的区别 流的概念 在程序中所有的数据都是以流的方式进行传输或保存的,程序中需要数据的时候就用输入流读取数据,而当程序需要将一些数据保存起来的时候,就要使用输出流完成. 程序中的输入输出都是以流的形式保存的,流中保存的实际上全部是字节文件. 字节流与字符流 在java.io包中操作文件内容的主要有两大类:字节流和字符流,两类都分为输入和输出操作.在字节流中输出数据主要是使用OutputStream完成,输入

02_IO操作的基本规律(InputStream,OutputStream,Reader,Writer,FileReader,FileWriter,BufferedReader,BufferedWri

 模拟BufferedInputStream,编写一个类 package toto.IO; import java.io.IOException; import java.io.InputStream; class MyBufferedInputStream{ private InputStream in; private byte[] buf = new byte[1024*4]; private int pos = 0,count = 0; MyBufferedInputStream(I

JAVA之IO技术-字符流对象Writer的子类对象FileWriter的使用

  package ioTest.io1; import java.io.File; import java.io.FileWriter; /* * IO技术,按照操作数据的方式分类如下: * 字节流和字符流 * 字节流的两个基类: * InputStream,OutputStream * 字节流的两个基类: * Reader,Writer * 思考一个问题:为什么有了字节流还要出现字符流? * * 先学习字符流的特点. * * 既然IO是操作数据的,那么数据最常见的体现形式 文件 * 需求: