----------------------
android培训、
java培训、期待与您交流! ----------------------
控制台 文件 内存 网络
一开始很不理解ByteArrayStream
后来才把他联系到源和目的里的内存
就很好理解了
毕老师总强调的
BufferedReader=new BufferedReader(new InputStreamReader(xxx));
BufferedWriter=new BufferedWriter(new OutputStreamReader(xxx));
印象很深刻了,对字符流的操作基本都是用上面这2个
然后写了一个小应用:拷贝文件夹
调试了很久
因为有个小地方一直没注意
记下来:
File对象的
getAbsolutePath
如果是文件 只获得前面路径 如"F:\\123\\1.txt"-->"F:\\123"
如果是目录 获得全称 如"F:\\123"-->"F:\\123"
getName
文件和目录都获得最后的名称
---------------------- android培训、 java培训、期待与您交流! ----------------------
详细请查看: http://edu.csdn.net/heima
IO流
源和目的:控制台 文件 内存 网络
一开始很不理解ByteArrayStream
后来才把他联系到源和目的里的内存
就很好理解了
毕老师总强调的
BufferedReader=new BufferedReader(new InputStreamReader(xxx));
BufferedWriter=new BufferedWriter(new OutputStreamReader(xxx));
印象很深刻了,对字符流的操作基本都是用上面这2个
然后写了一个小应用:拷贝文件夹
调试了很久
因为有个小地方一直没注意
记下来:
File对象的
getAbsolutePath
如果是文件 只获得前面路径 如"F:\\123\\1.txt"-->"F:\\123"
如果是目录 获得全称 如"F:\\123"-->"F:\\123"
getName
文件和目录都获得最后的名称
import java.io.*;
public class CopyFold {
public static long getSize(File f){ //递归获得文件或文件夹大小
if(f.exists()){
if(f.isDirectory()){
long size=0;
String[] paths=f.list();
for(String path:paths){
size+=getSize(new File(f.getAbsolutePath()+"\\"+path));
}
return size;
}else{
return f.length();
}
}else{
return 0;
}
}
public static void Copy0(File src,File dir)throws Exception{
if(src.exists()){
if(!dir.exists()){
dir.mkdirs();
}
if(src.isDirectory()){ //目录,创建后递归
File fold=new File(dir.getAbsolutePath()+"\\"+src.getName());
fold.mkdir();
String[] srcFile=src.list();
for(String srcPath:srcFile){
srcPath=src.getAbsolutePath()+"\\"+srcPath;
Copy0(new File(srcPath),fold);
}
}else{ //文件,拷贝
File copyFile=new File(dir.getAbsolutePath()+"\\"+src.getName());
if(copyFile.exists()){
System.out.println(copyFile.getAbsolutePath()+"已经存在");
}else{
FileInputStream fis=new FileInputStream(src);
FileOutputStream fos=new FileOutputStream(copyFile);
byte[] buf=new byte[1024*8];
int length=0;
while((length=fis.read(buf))!=-1){
fos.write(buf,0,length);
finishedSize+=length;
}
fis.close();
fos.close();
}
}
}else{
System.out.println("源文件或目录不存在");
return;
}
}
public static long finishedSize=0;
public static long totalSize=0;
public static void Copy(File src,File dir)throws Exception{
finishedSize=0;
totalSize=getSize(src);
new Thread(new Runnable(){ //开一个新线程显示已完成百分比
public void run() {
while(finishedSize<totalSize){
int i=(int)((double)finishedSize/(double)totalSize*100.0);
System.out.println("复制中...."+i+"%");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
System.out.println("复制完成");
}
}).start();
Copy0(src,dir);
}
public static void main(String[] args)throws Exception{
String srcPath=args[0];
String dirPath=args[1];
File src=new File(srcPath);
File dir=new File(dirPath);
Copy(src,dir);
}
}
---------------------- android培训、 java培训、期待与您交流! ----------------------
详细请查看: http://edu.csdn.net/heima