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();
相关文章推荐
- java web 编解码
- java.lang.NumberFormatException 错误及解决办法
- java web开发 高并发处理
- test7.11
- maven安装以及eclipse配置maven
- javaweb project create
- spring-3-mvc-hello-world-example
- javaEE__jsp自定义标签
- javaEE__jsp加强
- 我的Java成长之路001
- Java编程【1】Define an interface called IAnimal,return 10 animals filled radndomly 3 kinds of animals
- 深入解析Java中的数据类型与变量
- 详解Java GC的工作原理+Minor GC、FullGC
- java获取相对时间 1小时前 1天前
- MyEclipse导入的项目js文件乱码
- java日期时间操作
- ubuntu14 安装JDK 8
- Java基础知识强化88:BigDecimal类之BigDecimal类引入和概述 以及 BigDecimal的使用(加减乘除)
- JAVA内部类
- Java的RTTI机制–反射