Javaweb 学习笔记之文件上传和下载-01

来源:互联网 发布:口碑好的淘宝女装店铺 编辑:程序博客网 时间:2024/05/22 10:22

一、文件字节输入流

1、通常应用文件字节输入流将文件内容读取到字节数组中,其使用方法如下:

File file = new File("d:/1.txt");//创建文件对象FileInputStream fin = new FileInputStream(file);//创建文件字节输入流int len = fin.available();//获取字节的数量byte a[] = new byte[len];fin.read(a);//读取文件内容到字节数组a中fin.close();//关闭流
以上代码执行后,若不存在"d:/1.txt"文件,则会抛出异常。

2、若文件比较大,文件字节输入流可能不会将所有内容一次全部读出,此时可通过以下方法读取文件内容到字节数组中

File file = new File("d:/1.txt");FileInputStream fin = new FileInputStream(file);int len = fin.available();byte a[] = new byte[len];int read = 0;//实际读取的字节数int totalread = 0;//总共读出的字节数while(totalread<len){    /*从fin流中试图读取len个字节,并将读取的字节从a中的totalread位置开始存储,但很可能从fin流中只读取read个字节*/    read = fin.read(a,tatalread,len);    totalread += read;//计算总共读取的字节数}fin.close();

二、文件字节输出流

继承自OutputStream类,它关联指定路径的文件,数据通过文件字节输出流以字节为单位输出并保存到文件中,同时实现输出数据的各种方法。

1、应用文件字节输出流将字节数组中的内容写到文件中,使用方法如下:

File file = new File("d:/2.txt");FileOutputStream fout = new FileOutputStream(file);//创建文件字节输出流byte[] b = "你好".getBytes();//初始化文字数组fout.write(b);//将b中的内容写入fout流中fout.close();
以上代码执行后,如果不存在"d:/2.txt"文件,则会自动创建该文件,并将“你好”字符串写入2.txt文件中。

三、混合使用FileInputStream和FileOutputStream可以实现文件的复制操作

例:复制a.txt文件,并将复制文件命名为b.txt.具体实现方法如下:
File fa = new File("d:/a.txt");FileInputStream fin = new FileInputStream(fa);File fb = new File("d:/b.txt");FileOutputStream fout = new FileOutputStream(fb);int len  = fin.available();byte b[] = new byte[len];int read = 0;//读取fin中的内容到b中,并返回实际读取的字节数read,若read为-1表示已到文件尾while((read = fin.read(b))!=-1){    fout.write(b,0,read);}fin.close();fout.close();

0 0
原创粉丝点击