您的位置:首页 > 编程语言 > Java开发

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

2015-09-25 16:30 846 查看

一、文件字节输入流

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();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: