当我们队大量数据进行保存时可以用数组,当数据到达一定量时或给用户一个易懂得接口时就可采用IO流: IO流按进行的操作分输出流与输入流InputStream与OutputSteam
按操作的原理来分有2种常见的IO流字节流与缓冲流:这2种IO的的输入输出流都是对程序而言对程序而言(类似与惯性参考系)FlieIputStream输入流是将文件中的数据引用到程序中来。FileOutputSteam是将程序中的数据输入文件但与BuffredIputSteam和BuffrediputSteam相比字节流是一个字节一个字节对数据进行读取而缓冲流则是在Jvm上有块内存当
这块内存满了之后才向文件输出。因此在使用缓冲输出流是要注意对缓冲区类剩下位的数据进行强制输出。这2种IO流对读取和写入类自带的函数都市read()与Write(),关闭IO流对剩下的数据操作都是close()。
package 盘;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
/*
* 用字节流对数据进行拷贝
*/
public class Stream {
byte[] date; //文件中的数据
public static void main(String args[])
{
Stream stream=new Stream();
stream.read("G:\\[th12] 东方星莲船 (汉化版+日文版).rar");//要拷贝的文件的路径
stream.white("G:\\boot\\th12.rar");//拷贝后的地址和新的文件名
}
public void read(String route)
{
try {
FileInputStream source= new FileInputStream(route);//实例化一个字节输入流输入文件路径建立通道
int size;//文件所含字节数
try {
size=source.available();//返回文件的字节大小
date=new byte[size];
source.read(date);//将文件存入数组之中
source.close();//关闭字节流强制输出剩下未满一字节的数据
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void white(String routet)
{
try {
FileOutputStream out =new FileOutputStream(routet);//实例化一个输出流用输出的路径和文件名建立通道
try {
out.write(date);//要输出将数据给函数
out.close();//关闭输出流
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
相对于字节流的不同缓冲流在 实例化时:BufferedInputStream buffered=new BufferedIputStream(new FileIputStream(//c//xx.),4000);//通过IputStream或其子类传路径 int类型开辟空间。
下面是IO流公有的父类IputStream和OutputStream的几个方法即所有IO流都有的几个方法
IputStream
abstract int read()
从数据中返回一个字节,在末尾时返回-1
int read(byte[])
一次返回b.length个字节数据。数据末尾是返回-1
int read(byte[]b,int off,int len)
//从b[off]开始存len个数据到b中
long skip(long n)//逃过N个字节返回跳过字节数
int avaliable()//返回数据的字节数
OutputStream
abstract void write(int n)
向代码外部输入一个字节的数据。
void write(byte[]b)
void write(byte[]b,int off,int len)
void close()
//关闭输出流
void fluse()
//取出缓冲中剩下的数据