本文主要关注在Java编程中涉及到的IO相关的类库、方法。以及对各个层次(抽线、接口继承)的流之间的关系进行梳理
相关学习资料
http://baike.baidu.com/view/1007958.htm?noadapt=1
http://blog.csdn.net/hguisu/article/details/7418161
https://www.ibm.com/developerworks/cn/java/j-lo-javaio/
http://docs.oracle.com/javase/7/docs/api/
http://download.oracle.com/technetwork/java/javase/6/docs/zh/api/java/io/package-tree.html
http://tutorials.jenkov.com/java-io/index.html
目录
. Java中IO简介
. Java中的流
. Java中和IO相关的类库层次结构
1. Java中IO简介
IO(Input And Output)在编程中是一个很常见的需求,IO即意味着我们的java程序需要和"外部"进行通信,这个"外部"可以是很多介质
) 本地磁盘文件、远程磁盘文件
) 数据库连接
) TCP、UDP、HTTP网络通信
) 进程间通信
) 硬件设备(键盘、串口等)
...
aaarticlea/png;base64,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" alt="" />
2. Java中的流
IO是我们的目的,而要达到这一目的,我们需要一种机制来帮助我们完全,这种机制就是"流"、或者叫"数据流"。
数据流是一串连续不断的数据的集合,就象水管里的水流,在水管的一端一点一点地供水,而在水管的另一端看到的是一股连续不断的水流。数据写入程序可以是一段、一段地向数据流管道中写入数据,这些数据段会按先后顺序形成一个长的数据流。对数据读取程序来说,看不到数据流在写入时的分段情况,每次可以读取其中的任意长度的数据,但只能先读取前面的数据后,再读取后面的数据。不管写入时是将数据分多次写入,还是作为一个整体一次写入,读取时的效果都是完全一样的。
Java的IO模型设计非常优秀,它使用Decorator模式,按功能划分Stream
记住这句话对我们在编程中选择合适的类库很重要,Java中按照功能提供不同类别的流,我们接下来深入学习一下java中的各个流、以及它们的层次结构关系
3. Java中和IO相关的类库层次结构
首先,java中所有的对象(包括)流对象都从Object 超类继承而来,所以,所有的流类的父类都是Object类
以下的缩进关闭表示的的类的继承关系
Object(超类)
. 基于"字节"操作的 I/O 接口:
) InputStream
InputStream类是一个abstract class(抽象父类),它不能被直接用于实例化进行流操作,我们在编程中使用的是它的子类
1.1) ByteArrayInputStream: 从字节数组(byte[])中进行以字节为单位的读取
1.2) FileInputStream: 从文件中进行以字节为单位的读取
1.2.) SocketInputStream
org.apache.commons.net.io.SocketInputStream: 封装了对Socket的字节型流式读取
1.3) FilterInputStream: 用来"封装其它的输入流,并为它们提供额外的功能"
1.3.) InflaterInputStream
java.util.zip.InflaterInputStream: 从压缩数据源(zip)中以字节为单位读取数据
1.3.1.1) ZipInputStream
java.util.zip.ZipInputStream: 从zip文件中以字节为单位读取数据
1.3.) BufferedInputStream: 开辟"内部字节数组"对输入流进行缓存,函数的返回也是一个字节数组
1.3.) DataInputStream:
DataInputStream 是用来装饰其它输入流,它"允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型"。应用程序可以使用DataOutputStream(数据输出流)
写入由DataInputStream(数据输入流)读取的数据。
1.4) ObjectInputStream: 从输入流中读取序列化后的数据,并进行反序列化(deserializes)
1.5) PipedInputStream: 从管道中读取数据
) OutputStream
OutputStream类是一个abstract class(抽象父类),它不能被直接用于实例化进行流操作,我们在编程中使用的是它的子类
2.1) ByteArrayOutputStream: 以字节为单位将数据写入到从字节数组(byte[])中
2.2) FileOutputStream: 以字节为单位将数据写入到文件中
2.2.) SocketOutputStream
org.apache.commons.net.io.SocketOutputStream: 封装了对Socket的字节型流式写入
2.3) FilterOutputStream: 用来"封装其它的输出流,并为它们提供额外的功能"
2.3.) ZipOutputStream: java.util.zip.ZipOutputStream: 以字节为单位向zip文件写入数据
2.3.) PrintStream:
PrintStream 是用来装饰其它输出流。它能为其他输出流添加了功能,使它们能够方便地打印各种数据值表示形式
2.3.) DataOutputStream:
DataOutputStream 是用来装饰其它输入流,它"允许应用程序以与机器无关方式向底层输出流中写入基本 Java 数据类型"。应用程序可以使用DataInputStream(数据输入流)
写入由DataOutputStream(数据输出流)写入的数据()。有点类似管道、或者进程间通信的感觉
2.3.) BufferedInputStream:
2.4) ObjectOutputStream: 对数据进行序列化(serializes),并向输出流中写入序列化后的数据
2.5) PipedOutputStream: 向管道中写入数据
. 基于"字符"操作的 I/O 接口
不管是磁盘还是网络传输,最小的存储单元都是字节,而不是字符,所以 I/O 操作的都是字节而不是字符,为了操作方便,java封装了一个直接写字符的 I/O 接口,这里就涉及到java的流机制
中的一个很重要的概念,包装(装饰)。即所有的流操作在底层实现都是字节流的形式,以这个底层字节流为基础,在其上封装了各种"附加功能"(缓存、字符、管道..)
) Reader
Reader类是一个abstract class(抽象父类),它不能被直接用于实例化进行流操作,我们在编程中使用的是它的子类
1.1) InputStreamReader:
我们知道,字符型的流接口是在字节型的流接口基础之上进行了一次封装,提供了一些额外的功能。所以,从名字上也可以看出来,InputStreamReader是字节流通向字符流的桥梁,
封裝了InputStream在里头, 它以较高级的方式,一次读取一个一个字符,以文本格式输入/输出,可以指定编码格式。
1.1.) FileReader: 提供对文本文件(保存字符的文件)进行以字符为单位的读取
1.2) BufferedReader:
BufferedReader会一次性从物理流中读取8k(默认数值,可以设置)字节内容到内存,如果外界有请求,就会到这里存取,如果内存里没有才到物理流里再去读。即使读,也是再8k
而直接读物理流,是按字节来读。对物理流的每次读取,都有IO操作。IO操作是最耗费时间的。BufferedReader就是减少了大量IO操作,节省了时间
1.3) CharArrayReader:
CharArrayReader 是字符数组输入流。它和ByteArrayInputStream类似,只不过ByteArrayInputStream是字节数组输入流,而CharArray是字符数组输入流。
CharArrayReader 是用于读取字符数组,它继承于Reader。操作的数据是以字符为单位
1.4) FilterReader: 用来"封装其它的字符输入流,并为它们提供额外的功能"
1.5) PipedReader: PipedReader 是字符管道输入流,它继承于Reader。
1.6) StringReader: 以String作为数据源,进行以字符为单位的读取
) Writer
Writer类是一个abstract class(抽象父类),它不能被直接用于实例化进行流操作,我们在编程中使用的是它的子类
2.1) OutputStreamWriter:
2.1.) FileWriter: 提供对文本文件(保存字符的文件)进行以字符为单位的写入
2.2) BufferedWriter
2.3) StringWriter
2.4) PipedWriter
2.5) PrintWriter
2.6) CharArrayWriter
. 基于"磁盘"操作的 I/O 接口:
) File: (文件特征与管理): 用于文件或者目录的描述信息,例如生成新目录,修改文件名,删除文件,判断文件所在路径等,它不负责数据的输入输出,而专门用来管理磁盘文件与目录
) public boolean exists( ) 判断文件或目录是否存在
) public boolean isFile( ) 判断是文件还是目录
) public boolean isDirectory( ) 判断是文件还是目录
) public String getName( ) 返回文件名或目录名
) public String getPath( ) 返回文件或目录的路径。
) public long length( ) 获取文件的长度
) public String[] list( ) 将目录中所有文件名保存在字符串数组中返回
) public boolean renameTo( File newFile ); 重命名文件
) public void delete( ); 删除文件
) public boolean mkdir( ); 创建目录
. 基于网络操作的 I/O 接口:
) Socket
以上是按照Java官方API文档列出的总的目录,我们接下来逐一学习一下它们的应用场景,因为输入、输出流在编程上具有对称性,所以我们把它们合并在一起学习
0x1: InputStream: 字节输入流
0x2: OutputStream: 字节输出流
aaarticlea/png;base64,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" alt="" />
ByteArrayInputStream、ByteArrayOutputStream
ByteArrayOutputStream类是在创建它的实例时,程序内部创建一个byte型数组的缓冲区,然后利用ByteArrayOutputStream和ByteArrayInputStream的实例向数组中写入或读出byte型数据。在网络传输中我们往往要传输很多变量,我们可以利用ByteArrayOutputStream把所有的变量收集到一起,然后一次性把数据发送出去
import java.io.*; public class circle
{
public static void main(String[] args) throws Exception
{
int a=;
int b=;
int c=;
/*
* ByteArrayOutputStream()
* Creates a new byte array output stream.
*/
ByteArrayOutputStream bout = new ByteArrayOutputStream();
/*
* write(int b)
* Writes the specified byte to this byte array output stream.
*/
bout.write(a);
bout.write(b);
bout.write(c);
/*
* toByteArray()
* Creates a newly allocated byte array.
* 返回内部保存的临时byte缓存数组
*/
byte[] buff = bout.toByteArray();
for(int i=; i<buff.length; i++)
{
System.out.println(buff[i]);
}
System.out.println("***********************");
/*
* ByteArrayInputStream(byte[] buf)
* Creates a ByteArrayInputStream so that it uses buf as its buffer array.
*/
ByteArrayInputStream bin = new ByteArrayInputStream(buff);
/*
* read()
* Reads the next byte of data from this input stream.
*/
while((b = bin.read()) != -)
{
System.out.println(b);
}
}
}
FileInputStream、FileOutputStream
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream; public class circle
{
public static void main(String[] args) throws Exception
{
File f = new File("C:\1.txt");
//向文件里写如"Hello"字符串.
try
{
//要写入的数据转换成字节数组
byte[] buf = "Hello".getBytes();
/*
* FileOutputStream(File file)
* Creates a file output stream to write to the file represented by the specified File object.
* 如果1.txt存在,则删除1.txt里面的内容,文本所有内容变为Hello
* 如果1.txt不存在,在新建1.txt文本,写入Hello
*/
FileOutputStream out = new FileOutputStream(f);
/*
* write(byte[] b)
* Writes b.length bytes from the specified byte array to this file output stream.
*/
out.write(buf);
out.close();
}
catch(Exception e)
{
System.out.println(e);
} //读取文件中的内容
try
{
/*
* FileInputStream(File file)
* Creates a FileInputStream by opening a connection to an actual file, the file named by the File object file in the file system.
*/
FileInputStream in = new FileInputStream(f);
byte[] buf = new byte[];
/*
* read(byte[] b)
* Reads up to b.length bytes of data from this input stream into an array of bytes.
* 从流中读取内容
*/
int len = in.read(buf);
String str = new String(buf,,len);
//打印f文件的内容.
System.out.println(str);
}
catch(Exception e)
{
System.out.println(e);
}
}
}
ZipInputStream、ZipOutputStream(包装流)
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import java.util.zip.ZipOutputStream;
import java.io.FileOutputStream; public class circle
{
public static void main(String[] args) throws Exception
{
// 定义要压缩的文件
File file = new File("C:" + File.separator + "in.txt");
// 定义压缩文件名称
File zipFile = new File("C:" + File.separator + "in.zip");
/*
* FileInputStream(File file)
* Creates a FileInputStream by opening a connection to an actual file, the file named by the File object file in the file system.
* 定义文件的输入流
*/
InputStream input = new FileInputStream(file);
// 声明压缩流对象
ZipOutputStream zipOut = null;
/*
* ZipOutputStream(OutputStream out)
* Creates a new ZIP output stream.
* 再次体现了Java的流函数架构中的"装饰器设计模式"的强大之处,我们可以根据我们对功能的
* 需要任意组合、加载我们需要的流,用通俗的话来说,把它们层层包裹在一起
*/
zipOut = new ZipOutputStream(new FileOutputStream(zipFile));
/*
* putNextEntry(ZipEntry e)
* Begins writing a new ZIP file entry and positions the stream to the start of the entry data.
* 设置ZipEntry对象
*/
zipOut.putNextEntry(new ZipEntry(file.getName()));
int temp = ;
/*
* read()
* Reads a byte of data from this input stream.
* 从文件流中读取内容
*/
while((temp = input.read()) != -)
{
// 压缩输出
zipOut.write(temp);
}
// 关闭输入流
input.close();
// 关闭输出流
zipOut.close(); // read zip file as input stream
InputStream is= new FileInputStream("C:" + File.separator + "in.zip");
//zip is read by ZipInputStream
ZipInputStream zis= new ZipInputStream(is);
// now write zip file in extracted file
ZipEntry ze;
byte[] buff = new byte[];
/*
* getNextEntry()
* Reads the next ZIP file entry and positions the stream at the beginning of the entry data.
*/
while((ze = zis.getNextEntry()) != null)
{
// get file name
FileOutputStream fos= new FileOutputStream("C:" + File.separator + "out.txt");
int l=;
// write buffer to file
while((l = zis.read(buff)) > )
{
fos.write(buff,, l);
}
}
zis.close();
}
}
BufferedInputStream、BufferedInputStream(包装流)
import java.io.*;
public class circle
{
public static void main(String[] args) throws Exception
{
File filein = new File("C:/1.png");
File fileout = new File("C:/out.png");
try
{
//前面说过,File类它不负责数据的输入输出,而专门用来管理磁盘文件与目录
if (fileout.exists() == false)
{
fileout.createNewFile();
}
//要使用文件流,自然要使用文件读取流函数
FileInputStream in = new FileInputStream(filein);
FileOutputStream out = new FileOutputStream(fileout);
byte[] b = new byte[];
//在文件流外面包一层缓冲流读取函数
BufferedInputStream bin = new BufferedInputStream(in);
BufferedOutputStream bout = new BufferedOutputStream(out);
//缓存读取、缓存写入
while (bin.read(b) != -)
{
bout.write(b);
}
bout.close();
bin.close();
out.close();
in.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
DataInputStream、DataOutputStream(包装流)
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException; public class circle
{
public static void main(String[] args) throws Exception
{
writeDemo();
readDemo();
} public static void readDemo() throws IOException
{
DataInputStream dos = new DataInputStream(new FileInputStream("C:/in.txt"));
String s = dos.readUTF();
System.out.println(s);
} public static void writeDemo() throws IOException
{
/*
* DataOutputStream(OutputStream out)
* Creates a new data output stream to write data to the specified underlying output stream.
*/
DataOutputStream dos = new DataOutputStream(new FileOutputStream("C:/in.txt"));
/*
* writeUTF(String str)
* Writes a string to the underlying output stream using modified UTF-8 encoding in a machine-independent manner.
*/
dos.writeUTF("你好啊");//UTF-8修改版
}
}
ObjectInputStream、ObjectOutputStream
ObjectOutputStream可以把对象直接存入到文件中,然后利用ObjectInputStream读取文件还原成对象,前提是该对象实现了Serializable接口
import java.io.EOFException;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable; public class circle
{
public static void main(String[] args) throws Exception
{
FileOutputStream fop = new FileOutputStream("C:/out.txt");
/*
* ObjectOutputStream(OutputStream out)
* Creates an ObjectOutputStream that writes to the specified OutputStream.
*/
ObjectOutputStream oos = new ObjectOutputStream(fop);
People p = new People(,"zhang");
/*
* writeObject(Object obj)
* Write the specified object to the ObjectOutputStream.
*/
oos.writeObject(p);
p = new People(,"li");
oos.writeObject(p);
p = new People(,"zhao");
oos.writeObject(p);
//写入三个对象
oos.close();
//关闭输出流
FileInputStream fis=new FileInputStream("C:/out.txt");
/*
* ObjectInputStream(InputStream in)
* Creates an ObjectInputStream that reads from the specified InputStream.
*/
ObjectInputStream ois = new ObjectInputStream(fis);
try
{
while(true)
{
/*
* readObject()
* Read an object from the ObjectInputStream.
*/
People p2=(People)ois.readObject();
System.out.println(p2);
}
//没有办法判断文件中对象的数量,所以,只有通过EOFException异常来中断
//或者在写入的时候把所有的对象都放到一个ArrayLis里,这样就不需要判断了
}
catch (ClassNotFoundException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
catch(EOFException e)
{
System.out.println("读取结束");
}
}
} class People implements Serializable
{
//必须实现Serializable接口
int id;
String name;
People(int id,String name)
{
this.id=id;
this.name=name;
} public String toString()
{
return "id:"+id+" name:"+name;
} }
PipedInputStream、PipedOutputStream
管道流内部在实现时还有大量的对同步数据的处理。管道输出流和管道输入流执行时不能互相阻塞,所以一般要开启独立线程分别执行
import java.io.*; public class circle
{
public static void main(String[] args) throws Exception
{
/*
* PipedInputStream()
* Creates a PipedInputStream so that it is not yet connected.
*/
PipedInputStream pin = new PipedInputStream();
PipedOutputStream pout = new PipedOutputStream();
/*
* connect(PipedOutputStream src)
* Causes this piped input stream to be connected to the piped output stream src.
* 输入流与输出流连接
*/
pin.connect(pout); ReadThread readTh = new ReadThread(pin);
WriteThread writeTh = new WriteThread(pout);
new Thread(readTh).start();
new Thread(writeTh).start();
} public static void sop(Object obj) //打印
{
System.out.println(obj);
}
} class ReadThread implements Runnable
{
private PipedInputStream pin;
ReadThread(PipedInputStream pin) //
{
this.pin=pin;
} //由于必须要覆盖run方法,所以这里不能抛,只能try
public void run()
{
try
{
sop("R:读取前没有数据,阻塞中...等待数据传过来再输出到控制台...");
byte[] buf = new byte[];
int len = pin.read(buf); //read阻塞
sop("R:读取数据成功,阻塞解除..."); String s= new String(buf,,len);
sop(s); //将读取的数据流用字符串以字符串打印出来
pin.close();
}
catch(Exception e)
{
throw new RuntimeException("R:管道读取流失败!");
}
} public static void sop(Object obj) //打印
{
System.out.println(obj);
}
} class WriteThread implements Runnable
{
private PipedOutputStream pout;
WriteThread(PipedOutputStream pout)
{
this.pout= pout;
} public void run()
{
try
{
sop("W:开始将数据写入:但等个5秒让我们观察...");
Thread.sleep(); //释放cpu执行权5秒
/*
* write(int b)
* Writes the specified byte to the piped output stream.
* 向管道写入数据,同时解除管道上的阻塞状态
*/
pout.write("W: writePiped 数据...".getBytes());
pout.close();
}
catch(Exception e)
{
throw new RuntimeException("W:WriteThread写入失败...");
}
}
//打印
public static void sop(Object obj)
{
System.out.println(obj);
}
}
在了解了"字节型"流处理函数的应用场景后,我们接下来继续学习"字符型"流处理函数
0x3: Reader: 字符输入流
aaarticlea/png;base64,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" alt="" />
0x4: Writer: 字符输出流
aaarticlea/png;base64,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" alt="" />
在开始学习"字符型"流处理函数的应用场景之前,我们必须牢记一个概念,Java的流函数的整体架构是"装饰器设计模式",也就是说,所有的流函数都可以按照所需的功能进行任意组合、互相嵌套、包裹。而我们的字符型流处理函数本质上也是对字节型流处理函数的一次包裹(或者说加载了字节型流处理函数的功能)
另外数据持久化或网络传输都是以字节进行的,所以必须要有字符到字节或字节到字符的转化。字符到字节需要转化,其中读的转化过程如下图所示:
aaarticlea/png;base64,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" alt="" />
InputStreamReader 类是字节到字符的转化桥梁,InputStream 到 Reader 的过程要指定编码字符集,否则将采用操作系统默认字符集,很可能会出现乱码问题。StreamDecoder 正是完成字节到字符的解码的实现类。
写入也是类似的过程如下图所示
aaarticlea/png;base64,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" alt="" />
通过 OutputStreamWriter 类完成,字符到字节的编码过程,由StreamEncoder完成编码过程
InputStreamReader、OutputStreamReader
import java.io.*; public class circle
{
public static void main(String[] args) throws Exception
{
InputStream inputStream = new FileInputStream("C:/in.txt");
/*
* InputStreamReader(InputStream in)
* Creates an InputStreamReader that uses the default charset.
* 在字节型输入流之上包裹一层字符型输入流
*/
Reader reader = new InputStreamReader(inputStream);
/*
* read()
* Reads a single character.
*/
int data = reader.read();
while(data != -)
{
char theChar = (char) data;
System.out.print(theChar);
data = reader.read();
}
reader.close(); OutputStream outputStream = new FileOutputStream("C:/out.txt");
/*
* OutputStreamWriter(OutputStream out)
* Creates an OutputStreamWriter that uses the default character encoding.
* 在字节型输出流之上包裹一层字符型输出流
*/
Writer writer = new OutputStreamWriter(outputStream);
/*
* write(String str, int off, int len)
* Writes a portion of a string.
*/
writer.write("Hello World"); writer.close();
}
}
从上面的代码我们可以看到,我们使用字节型的文件流读取文件,然后再在上面包裹一层字符型流读取函数。除此之外,还有另一种方法(严格来说不能算另一种方法,因为java的流函数架构是"装饰器设计模式",功能之间可以任意组装),直接之用字符型文件流读取(本质上来说,字符型文件流读取也是一些功能的组装)。
FileReader、FileWriter
import java.io.*; public class circle
{
public static void main(String[] args) throws Exception
{
/*
* FileReader(String fileName)
* Creates a new FileReader, given the name of the file to read from.
*/
Reader reader = new FileReader("C:/in.txt");
int data = reader.read();
while(data != -)
{
char theChar = (char) data;
System.out.print(theChar);
data = reader.read();
}
reader.close(); Writer writer = new FileWriter("C:/out.txt");
writer.write("Hello World");
writer.close();
}
}
BufferedReader、BufferedWriter
和BufferedInputStream、BufferedOutputStream不同的是,BufferedReader、BufferedWriter提供了ReadLine、newLine()这种以行为单位的字符读写机制
import java.io.*; public class circle
{
public static void main(String[] args) throws Exception
{
/*
* FileReader(String fileName)
* Creates a new FileReader, given the name of the file to read from.
*/
Reader reader = new FileReader("C:/in.txt");
/*
* BufferedReader(Reader in)
* Creates a buffering character-input stream that uses a default-sized input buffer.
* 在Reader之上再包一层Buffer缓冲区的功能
*/
BufferedReader brd = new BufferedReader(reader); String data = brd.readLine();
while(data != null)
{
System.out.print(data);
data = brd.readLine();
}
brd.close();
reader.close(); Writer writer = new FileWriter("C:/out.txt");
/*
* BufferedWriter(Writer out)
* Creates a buffered character-output stream that uses a default-sized output buffer.
*/
BufferedWriter bwd = new BufferedWriter(writer);
/*
* write(String s, int off, int len)
* Writes a portion of a String.
*/
bwd.write("Hello World");
/*
* newLine()
* Writes a line separator.
*/
bwd.newLine();
bwd.close();
writer.close();
}
}
CharArrayReader、CharArrayWriter
CharArrayReader 是字符数组输入流。它和ByteArrayInputStream类似,只不过ByteArrayInputStream是字节数组输入流,而CharArray是字符数组输入流。CharArrayReader 是用于读取字符数组,它继承于Reader。操作的数据是以字符为单位
import java.io.*; public class circle
{
public static void main(String[] args) throws Exception
{
char a = 'a';
char b = 'b';
char c = 'c';
/*
* CharArrayWriter()
* Creates a new CharArrayWriter.
*/
CharArrayWriter carrWrt = new CharArrayWriter();
/*
* write(int c)
* Writes a character to the buffer.
*/
carrWrt.write(a);
carrWrt.write(b);
carrWrt.write(c);
/*
* toCharArray()
* Returns a copy of the input data.
*/
char[] buff = carrWrt.toCharArray();
for(int i = ; i < buff.length; i++)
{
System.out.println(buff[i]);
}
System.out.println("***********************"); /*
* CharArrayReader(char[] buf)
* Creates a CharArrayReader from the specified array of chars.
*/
CharArrayReader carrRed = new CharArrayReader(buff);
/*
* read()
* Reads the next byte of data from this input stream.
*/
int data;
while((data = carrRed.read()) != -)
{
System.out.println(data);
}
}
}
FilterReader、FilterWriter
用来"封装其它的字符输入流,并为它们提供额外的功能"
PipedReader、PipedWriter
字符管道流,原理上和PipedInputStream类似
PrintWriter
printwriter是向文本输出流打印对象的格式化表示形式,它允许以一种格式化的方式进行数据流的写入,类似C语言中的printf()函数
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter; public class circle
{
public static void main(String[] args) throws Exception
{
String filename = "C:/out.txt";
/*
* PrintWriter(Writer out)
* Creates a new PrintWriter, without automatic line flushing.
*/
PrintWriter pw = new PrintWriter(new FileWriter(filename));
String[] words = new String[]{"hello", "world", "!"}; for (int i = ; i < words.length; i++)
{
/*
* format(String format, Object... args)
* Writes a formatted string to this writer using the specified format string and arguments.
*/
pw.format("words: %s\n", words[i]);
}
/*
* flush()
* Flushes the stream.
*/
pw.flush();
}
}
0x5: File 文件、目录操作接口
我们已经学习了关于流操作的各种函数接口,接下来我么继续学习File类,要明确的一点是,虽然这个类名是File类,但是这个类却不负责文件流的实际读写,在我本人看来,我更愿意叫它"文件元数据Meta操作接口"。而File类常常和文件流读写函数配合起来,进行文件的操作
import java.io.*; public class circle
{
public void FileOperate()
{
} /**
* 新建目录
* @param folderPath String 如 c:/fqf
* @return boolean
*/
public void newFolder(String folderPath)
{
try
{
String filePath = folderPath;
filePath = filePath.toString();
java.io.File myFilePath = new java.io.File(filePath);
if (!myFilePath.exists())
{
myFilePath.mkdir();
}
}
catch (Exception e)
{
System.out.println("新建目录操作出错");
e.printStackTrace();
}
} /**
* 新建文件
* @param filePathAndName String 文件路径及名称 如c:/fqf.txt
* @param fileContent String 文件内容
* @return boolean
*/
public void newFile(String filePathAndName, String fileContent)
{
try
{
String filePath = filePathAndName;
filePath = filePath.toString();
File myFilePath = new File(filePath);
if (!myFilePath.exists())
{
myFilePath.createNewFile();
}
FileWriter resultFile = new FileWriter(myFilePath);
PrintWriter myFile = new PrintWriter(resultFile);
String strContent = fileContent;
myFile.println(strContent);
resultFile.close();
}
catch (Exception e)
{
System.out.println("新建目录操作出错");
e.printStackTrace();
}
} /**
* 删除文件
* @param filePathAndName String 文件路径及名称 如c:/fqf.txt
* @param fileContent String
* @return boolean
*/
public void delFile(String filePathAndName)
{
try
{
String filePath = filePathAndName;
filePath = filePath.toString();
java.io.File myDelFile = new java.io.File(filePath);
myDelFile.delete();
}
catch (Exception e)
{
System.out.println("删除文件操作出错");
e.printStackTrace();
}
} /**
* 删除文件夹
* @param filePathAndName String 文件夹路径及名称 如c:/fqf
* @param fileContent String
* @return boolean
*/
public void delFolder(String folderPath)
{
try
{
delAllFile(folderPath); //删除完里面所有内容
String filePath = folderPath;
filePath = filePath.toString();
java.io.File myFilePath = new java.io.File(filePath);
myFilePath.delete(); //删除空文件夹
}
catch (Exception e)
{
System.out.println("删除文件夹操作出错");
e.printStackTrace();
}
} /**
* 删除文件夹里面的所有文件
* @param path String 文件夹路径 如 c:/fqf
*/
public void delAllFile(String path)
{
File file = new File(path);
if (!file.exists())
{
return;
}
if (!file.isDirectory())
{
return;
}
String[] tempList = file.list();
File temp = null;
for (int i = ; i < tempList.length; i++)
{
if (path.endsWith(File.separator))
{
temp = new File(path + tempList[i]);
}
else
{
temp = new File(path + File.separator + tempList[i]);
}
if (temp.isFile())
{
temp.delete();
}
if (temp.isDirectory())
{
delAllFile(path+"/"+ tempList[i]);//先删除文件夹里面的文件
delFolder(path+"/"+ tempList[i]);//再删除空文件夹
}
}
} /**
* 复制单个文件
* @param oldPath String 原文件路径 如:c:/fqf.txt
* @param newPath String 复制后路径 如:f:/fqf.txt
* @return boolean
*/
public void copyFile(String oldPath, String newPath)
{
try
{
int bytesum = ;
int byteread = ;
File oldfile = new File(oldPath);
if (oldfile.exists())
{ //文件存在时
InputStream inStream = new FileInputStream(oldPath); //读入原文件
FileOutputStream fs = new FileOutputStream(newPath);
byte[] buffer = new byte[];
int length;
while ( (byteread = inStream.read(buffer)) != -)
{
bytesum += byteread; //字节数 文件大小
System.out.println(bytesum);
fs.write(buffer, , byteread);
}
inStream.close();
}
}
catch (Exception e)
{
System.out.println("复制单个文件操作出错");
e.printStackTrace();
}
} /**
* 复制整个文件夹内容
* @param oldPath String 原文件路径 如:c:/fqf
* @param newPath String 复制后路径 如:f:/fqf/ff
* @return boolean
*/
public void copyFolder(String oldPath, String newPath)
{
try
{
(new File(newPath)).mkdirs(); //如果文件夹不存在 则建立新文件夹
File a=new File(oldPath);
String[] file=a.list();
File temp=null;
for (int i = ; i < file.length; i++)
{
if(oldPath.endsWith(File.separator))
{
temp=new File(oldPath+file[i]);
}
else
{
temp=new File(oldPath+File.separator+file[i]);
}
if(temp.isFile())
{
FileInputStream input = new FileInputStream(temp);
FileOutputStream output = new FileOutputStream(newPath + "/" + (temp.getName()).toString());
byte[] b = new byte[ * ];
int len;
while ( (len = input.read(b)) != -)
{
output.write(b, , len);
}
output.flush();
output.close();
input.close();
}
if(temp.isDirectory())
{//如果是子文件夹
copyFolder(oldPath+"/"+file[i],newPath+"/"+file[i]);
}
}
}
catch (Exception e)
{
System.out.println("复制整个文件夹内容操作出错");
e.printStackTrace();
}
} /**
* 移动文件到指定目录
* @param oldPath String 如:c:/fqf.txt
* @param newPath String 如:d:/fqf.txt
*/
public void moveFile(String oldPath, String newPath)
{
copyFile(oldPath, newPath);
delFile(oldPath);
} /**
* 移动文件到指定目录
* @param oldPath String 如:c:/fqf.txt
* @param newPath String 如:d:/fqf.txt
*/
public void moveFolder(String oldPath, String newPath)
{
copyFolder(oldPath, newPath);
delFolder(oldPath);
}
}
4. 后记
. 什么时候改用什么流函数:
我在学习Java的的API的时候第一个问自己的问题就是这个,在我看来,可以遵循以下两点:
) 明确我们的目的,例如需要读取文件,就使用文件流FileInputStream、需要缓存就包上一层BufferedInputStream、要进行字符型读取就使用InputStreamReader
) 理解"装饰器设计模式"的概念,我们需要的功能可以通过流函数之间的包裹来进行实现,在编程的时候,注意参考API文档,查明哪些流对象之间可以互相包裹很重要
. 对流函数的深入理解:
Java的源代码是公开的,为了深入理解Java中的IO机制,下一步希望从源代码角度去深入研究一下Java中的IO、流、缓存机制,以及优化方案
Copyright (c) 2014 LittleHann All rights reserved
Link: http://www.cnblogs.com/LittleHann/p/3678685.html
Java输入、输入、IO流 类层次关系梳理的更多相关文章
-
第54节:Java当中的IO流(中)
Java当中的IO流(中) 删除目录 // 简书作者:达叔小生 import java.io.File; public class Demo{ public static void main(Stri ...
-
第53节:Java当中的IO流(上)
Java当中的IO流 在Java中,字符串string可以用来操作文本数据内容,字符串缓冲区是什么呢?其实就是个容器,也是用来存储很多的数据类型的字符串,基本数据类型包装类的出现可以用来解决字符串和基 ...
-
Java当中的IO流(中)
Java当中的IO流(中) 删除目录 import java.io.File; public class Demo{ public static void main(String[] args){ / ...
-
Java当中的IO流(上)
Java当中的IO流 在Java中,字符串string可以用来操作文本数据内容,字符串缓冲区是什么呢?其实就是个容器,也是用来存储很多的数据类型的字符串,基本数据类型包装类的出现可以用来解决字符串和基 ...
-
java基础06 IO流
IO用于在设备间进行数据传输的操作. Java IO流类图结构: IO流分类 字节流: InputStream FileInputStream BufferedInputStream Output ...
-
第55节:Java当中的IO流-时间api(下)-上
Java当中的IO流(下)-上 日期和时间 日期类:java.util.Date 系统时间: long time = System.currentTimeMillis(); public class ...
-
Java中的IO流,Input和Output的用法,字节流和字符流的区别
Java中的IO流:就是内存与设备之间的输入和输出操作就成为IO操作,也就是IO流.内存中的数据持久化到设备上-------->输出(Output).把 硬盘上的数据读取到内存中,这种操作 成为 ...
-
Java中的IO流(五)
上一篇<Java中的IO流(四)>记录了一下Properties类,此类不属于IO流,它属于集合框架.接下来说一下IO流中的其它流 一,打印流PrintStream PrintStream ...
-
Java中的IO流(六)
上一篇<Java中的IO流(五)>把流中的打印流PrintStream,PrintWriter,序列流SequenceInputStream以及结合之前所记录的知识点完成了文件的切割与文件 ...
随机推荐
- PHP面向对象基础part.1
-
jQuery als.js 跑马灯
ali.js是一款滚动插件,滚动的内容可包含文字和图片.它的API也很强大,包括滚动区域可见个数.每次滚动个数.滚动方向.是否循环滚动.是否自动滚动.滚动间隔时间.滚动动画速度.动画效果.滚动方向以及 ...
-
Equinox P2的学习
product.configuration 点击“Add按钮”并添加以下插件: org.eclipse.equinox.p2.ui org.eclipse.equinox.p2.ui.sdk org. ...
-
android oom 全解析
Android oom 有时出现很频繁,这一般不是Android设计的问题,一般是我们的问题. 就我的经验而言,出现oom,无非主要是以下几个方面: 一.加载对象过大 二.相应资源过多,没有来不及释放 ...
-
RMQ(log2储存方法)
RMQ 难度级别:B: 运行时间限制:1000ms: 运行空间限制:256000KB: 代码长度限制:2000000B 试题描述 长度为n的数列A,以及q个询问,每次询问一段区间的最小值. 输入 第一 ...
-
SQL注入式攻击
百度百科:http://baike.baidu.com/link?url=GQbJ2amTzTahZA7XJSBDLYYkN3waQ9JCoJ0l--tCWlvKQibe0YaH4hpmgEnLyn0 ...
-
3 委托、匿名函数、lambda表达式
委托.匿名函数.lambda表达式 在 2.0 之前的 C# 版本中,声明委托的唯一方法是使用命名方法.C# 2.0 引入了匿名方法,而在 C# 3.0 及更高版本中,Lambda 表达式取代了匿名方 ...
-
php开启ssl支持
1.首先在php的安装文件下找到三个文件 并copy到系统目标下的 system32文件夹下: ssleay32.dll.libeay32.dll,php_openssl.dll. 2.打开php.i ...
-
beego框架的最简单登入演示
一.controllers逻辑代码 func (c *UserController) Get() { c.TplName="login.html" } func (c *UserC ...
-
mac 清理
1.iOS DeviceSupport -- ~/Library/Developer/Xcode/iOS DeviceSupport 这个可重新生成!在连接旧设备调试时,会重新自动生成. 2.iP ...