所谓流,指的同一台或者网络中不同计算机之间有序运动着的数据序列,这些不同来源和目标的数据都统一抽象为数据里。
1.FileInputStream提供以字节形式读取磁盘上文件等内容。
package com.test.file;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
/**
* 文件输入流,从文件读取数据到程序中
* @author 守望幸福
*
*/
public class FileInputStreamTest {
public static void main(String[] args) throws IOException {
String path="d:\\fileTest\\";
String fileName="file.txt";
File f=new File(path);
if(!f.exists()){//判断路径是否存在
f.mkdir();
}
f=new File(path+fileName);
if(!f.exists()){//判断文件是否存在
f.createNewFile();
}
FileInputStream in=new FileInputStream(f);
int n=512;
byte buffer[]=new byte[n];
System.out.println("文件长度:"+f.length());
while(in.read(buffer,0,n)!=-1&& n>0){//一次读取512字节
System.out.println("剩余字符长度:"+in.available());
System.out.println(new String(buffer));
}
in.close();
}
}
2. FileOutPutStream类提供以字节流形式输入的文件中。
package com.test.file;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
/**
* 字节输出流
* @author 守望幸福
*
*/
public class FileOutPutStreamTest {
public static void main(String[] args) throws IOException {
FileOutputStream out=new FileOutputStream(new File("d:\\fileTest\\file.txt"));
byte[] buff={1,2,3,4,5,6,'1','b','a','d','f','g','r','h','q','w'};
out.write(buff);
out.close();
}
}
3.缓存输入流与输出流
构造方法摘要 | |
---|---|
BufferedInputStream (InputStream in) 创建一个 BufferedInputStream 并保存其参数,即输入流 in ,以便将来使用。 | |
BufferedInputStream (InputStream in, int size) 创建具有指定缓冲区大小的 BufferedInputStream 并保存其参数,即输入流 in ,以便将来使用。 |
BufferedOutPutStream
构造方法摘要 | |
---|---|
BufferedOutputStream (OutputStream out) 创建一个新的缓冲输出流,以将数据写入指定的底层输出流。 | |
BufferedOutputStream (OutputStream out, int size) 创建一个新的缓冲输出流,以将具有指定缓冲区大小的数据写入指定的底层输出流。 |
package com.test.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;
/**
* 缓存流必须配合InputStream对象和OutPutStream对象使用
* 为上述两个对象添加缓存的功能
*
* 从bin文件读取数据,保存到bout文件中
*
* @author 守望幸福
*
*/
public class BufferedStreamTest {
public static void main(String[] args) throws IOException {
FileInputStream in=new FileInputStream("d:\\fileTest\\bin.txt");
FileOutputStream out=new FileOutputStream("d:\\fileTest\\bout.txt");
BufferedInputStream bin=new BufferedInputStream(in);
BufferedOutputStream bout=new BufferedOutputStream(out);
byte[] buff=new byte[128];
while(bin.read(buff)>0){
bout.write(buff);
}
bout.flush();
bout.close();
bin.close();
}
}