字节流可以读取任何类型的文件,因此也可以读取文本类型的文件
自己出的题,自己的深入了解和理解思考等:
复制删除(剪切)图片,设置每次读取字节长度为100,求出共读取的字节总长度,求出复制所用的时间
package IO;
import java.io.*;
public class lizi4 {
public static void main(String[] args) throws Exception{
File weJianLuJing=new File("D://集成开发工具/7.jpg");
//用FileInputStream声明读取的字节流:
FileInputStream shuRuLiu=new FileInputStream(weJianLuJing);
//用FileOutputStream声明写入的字节流:
//用XXX getName()得到XXX的名字,这里当作相对路径,这样的话,
//XXX就会复制到相对路径
FileOutputStream shuChuLiu=
new FileOutputStream(weJianLuJing . getName());
long startTime=System. currentTimeMillis() ;
//用字节数组byte[]当作容器
byte[] ziJieShuZu=new byte [100];
//这里的100表示每次读取的字节的长度
int xiaBiaoLength;
//xiaBiaoLength:下标的长度,就是数组长度
int ziJieZongChangDu=0;
int count=0;
while((xiaBiaoLength=shuRuLiu.read(ziJieShuZu))!=-1){
System. out . println("这次读取的字节长度:"+xiaBiaoLength);
count++;
ziJieZongChangDu=ziJieZongChangDu+xiaBiaoLength;
//下面会写出下标0到xiaBiaoLength-1(含头含尾)的字节
shuChuLiu.write(ziJieShuZu,0,xiaBiaoLength) ;
shuChuLiu. flush();
}
System. out . println("读取的文件的字节总长度:"
+ziJieZongChangDu);
System. out . println("读取文件的次数:"
+count+"次");
long endTime=System. currentTimeMillis();
System. out . println("复制花费的时间为"
+(endTime-startTime)+"毫秒");
shuChuLiu. close();shuRuLiu.close();
weJianLuJing .delete();
//读的同时要进行写入。
}
//newFileLuJing:新的文件路径
//oldFileLuJing:旧的文件路径
//public static void fuZhiFangFa(String oldFileLuJing , String
//newFileLuJing)throws Exception{
//File oldWenJian=new File(oldFileLuJing);
//if(oldWenJian.exists()){
wenJianDuQuDaoDeNeiRong:
文件读取到的内容
//FileReader wenJianDuQuDaoDeNeiRong=new FileReader(oldWenJian);
//String wenJianName=oldWenJian . getName();
//File NewWenjian=new File (newFileLuJing, wenJianName) ;
wenJianXieLuDeNeiRong:文件写入的内容
//FileWriter wenJianXieLuDeNeiRong
//=new FileWriter(NewWenjian);
//char[] ziJieShuZu=new char[30];
//int ziJieShuZuLength;
//while((ziJieShuZuLength=
//wenJianDuQuDaoDeNeiRong .read(ziJieShuZu))!=-1){
//wenJianXieLuDeNeiRong .
//write(new String(ziJieShuZu,0,ziJieShuZuLength));
//wenJianXieLuDeNei