1.字节流
通过读取字节的方式进行文件的输入和输出,用到的类为InputStream和OutputStream,
相应的操作就是调用相应的方法,下面为示例代码,都比较简单
1)输入流应用代码
class="java" name="code">import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
public class InputDemo {
/**
* 主函数
* @throws IOException
*/
public static void main(String[] args) throws IOException {
InputDemo ipd=new InputDemo();
//此路径为相对路径
String path="src/文件输入/InputDemo.java";
ipd.readFile(path);
}
private void readFile(String path) throws IOException {
//创建输入流对象
InputStream ins=new FileInputStream(path);
//根据输入流创建缓冲流
BufferedInputStream bis=new BufferedInputStream(ins);
//根据流中的字节长度创建一个byte数组
byte array[]=new byte[ins.available()];
//将流中的数据读到数组中(不用缓冲)
ins.read(array);
//运用缓冲流输入
//bis.read(array);
ins.close();
bis.close();
//将数组转换成String类型并输出
System.out.println(new String(array));
}
}
2)输出流应用代码
输出流的代码是关于文件复制的应用
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
public class OutputDemo {
/**
* 主函数
* @throws IOException
*/
public static void main(String[] args) throws IOException {
OutputDemo opd=new OutputDemo();
String path1="C:/Users/Deller/Desktop/人月神话.txt";
String path2="src/文件输出/OutputDemo.java.txt";
opd.copyFile(path1,path2);
}
/**
* 复制文件方法
* @param path1 要复制的文件的路径
* @param path2 文件副本的路径
* @throws IOException文件异常
*/
public void copyFile(String path1,String path2) throws IOException{
InputStream ins=new FileInputStream(path1);
FileOutputStream ops=new FileOutputStream(path2);
//创建缓冲流
BufferedInputStream bis=new BufferedInputStream(ins);
BufferedOutputStream bos=new BufferedOutputStream(ops);
int i=0;
//不运用缓冲读取文件并输出(会很慢的),不信你可以找一个较大的文件
试试
//当ins.read()=-1时,说明文件读取完毕
//while((i=ins.read())!=-1){
// ops.write(i);
//}
//运用缓冲读取文件并输出
while((i=bis.read())!=-1){
bos.write(i);
}
System.out.println("文件复制完成!!!");
bos.flush();
ins.close();
ops.close();
bis.close();
bos.close();
}
}
2.缓冲流
其实上面代码已经运用到了缓冲流,它的创建要根据输出和输入流进行创建。
还没写完。。。。