IO体系:
输入/输出流体系
分类
字节输入流
字节输出流
字符输入流
字符输出流
抽象基类
InputStream
OutputStream
Reader
Writer
访问文件
FileInputStream
FileOutputStream
FileReader
FileWriter
访问数组
ByteArrayInputStream
ByteArrayOutputStream
CharArrayReader
CharArrayWriter
访问管道
PipedInputStream
PipedOutputStream
PipedReader
PipedWriter
访问字符串
StringReader
StringWriter
缓冲流
BufferedInputStream
BufferedOutputStream
BufferedReader
BufferedWriter
转换流
InputStreamReader
OutputStreamWriter
对象流
ObjectInputStream
ObjectOutputStream
抽象基类
FilterInputStream
FilterOutputStream
FilterReader
FileWriter
打印流
PrintStream
推回输入流
PushbackInputStream
PushbackReader
特殊流
DataInputStream
DataOutputStream
流的单向性:
输入流:只能从中读取数据,不能写入数据
输出流:只能从中写入数据,不能从中读取数据
读写文件的主要是用到FileInputStream和FileOutputStream,他们分别是继承了,InputStream和OutputStream,下面就写一个读取文件以及写入数据到一个文件的例子。
package com.io;
import java.io.*;
public class MyIO {
public static void main(String[] args) {
//读取文件
int b = 0;
FileInputStream in = null;
try{
in = new FileInputStream("D://java//ThrowsDemo.java");
}catch (FileNotFoundException e) {
System.out.println("找不到指定文件");
System.exit(-1);
}
try{
long num = 0;
while((b=in.read())!=-1) {
System.out.print((char)b);
num++;
}
in.close();
System.out.println();
System.out.println("共读取了"+num+"个字节");
}catch (IOException e1) {
System.out.println("文件读取出错");System.exit(-1);
}
//写文件
int b1 = 0;
FileInputStream in1 = null;
FileOutputStream out = null;
try{
in1 = new FileInputStream("D://java//ThrowsDemo.java");
out = new FileOutputStream("D://java//Throw.java");
while((b1=in1.read())!=-1) {
out.write(b1);
}
in1.close();
out.close();
}catch (FileNotFoundException e2) {
System.out.println("找不到指定文件");System.exit(-1);
}catch(IOException e1) {
System.out.println("文件复制出错");System.exit(-1);
}
System.out.println("文件已复制");
}
}
基本的文件操作就是这样,总的来说就是输入输出流。而输入、输出流可分为字节流和字符流两大类,下面继续详说。
分享到:
2012-06-17 15:02
浏览 14192
评论
2 楼
玉米豆子123
2016-11-15
输入流:只能从中读取数据,不能写入数据
输出流:只能从中写入数据,不能从中读取数据
想问问这是什么意思
1 楼
heshifk
2016-07-02
有那么一段时间,我一直弄不懂输入和输出是怎样定义的,后来终于弄明白了,所谓的输入及输出都是对内存 进行操作的。