package fileCopyAndShearDemo;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import javax.swing.JFileChooser;
public class BufferedStreamCopyDemo {
static final String pathName = "D:/";
public static void main(String[] args) {
long time = Copy();
System.out.println("复制共耗时:" + (time / 1000) + "秒!" + "总共为:" + time + "毫秒!");
}
/**复制文件---使用缓存流*/
public static long Copy() {
File file = new File(pathName);
String pathName2;
InputStream inputStream = null;
OutputStream outputStream = null;
BufferedInputStream binputStream = null;
BufferedOutputStream boutputStream = null;
JFileChooser jfilechoose = new JFileChooser(file);
jfilechoose.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
jfilechoose.showOpenDialog(null); //打开文件选择器
file = jfilechoose.getSelectedFile();
JFileChooser Jfilechooser2 = new JFileChooser(new File("D:/"));
Jfilechooser2.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
Jfilechooser2.showOpenDialog(null);
pathName2 = Jfilechooser2.getSelectedFile().getAbsolutePath();
String Name = Jfilechooser2.getName(file);
System.out.println("file:" + Name);
String[] suffix = {".txt",".avi",".mp3"};
int Index = -1;
for (int i = 0; i < suffix.length; i++) {
if(Name.endsWith(suffix[i])) {
Index = i;
break;
}
}
if(Index == -1) {
System.out.println("暂时不支持该后缀!");
System.out.println("Program exit!");
System.exit(0);
}
pathName2 += "\\oneCopy2" + suffix[Index];
System.out.println("复制路径为:" + pathName2);
File file2 = new File(pathName2);
if(file == null) {
System.out.println("No Select!");
System.out.println("Program exit!");
System.exit(0);
}
long startTime = System.currentTimeMillis();
try {
inputStream = new FileInputStream(file);
binputStream = new BufferedInputStream(inputStream);
outputStream = new FileOutputStream(file2);
boutputStream = new BufferedOutputStream(outputStream);
System.out.println("正在复制,请稍后.......");
int i = -1;
while((i = binputStream.read()) != -1) {
boutputStream.write(i);
}
System.out.println("复制成功!");
} catch (Exception e) {
e.printStackTrace();
}finally {
try {
boutputStream.close();
outputStream.close();
binputStream.close();
inputStream.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
long endTime = System.currentTimeMillis();
return (endTime - startTime);
}
}
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import javax.swing.JFileChooser;
public class BufferedStreamCopyDemo {
static final String pathName = "D:/";
public static void main(String[] args) {
long time = Copy();
System.out.println("复制共耗时:" + (time / 1000) + "秒!" + "总共为:" + time + "毫秒!");
}
/**复制文件---使用缓存流*/
public static long Copy() {
File file = new File(pathName);
String pathName2;
InputStream inputStream = null;
OutputStream outputStream = null;
BufferedInputStream binputStream = null;
BufferedOutputStream boutputStream = null;
JFileChooser jfilechoose = new JFileChooser(file);
jfilechoose.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
jfilechoose.showOpenDialog(null); //打开文件选择器
file = jfilechoose.getSelectedFile();
JFileChooser Jfilechooser2 = new JFileChooser(new File("D:/"));
Jfilechooser2.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
Jfilechooser2.showOpenDialog(null);
pathName2 = Jfilechooser2.getSelectedFile().getAbsolutePath();
String Name = Jfilechooser2.getName(file);
System.out.println("file:" + Name);
String[] suffix = {".txt",".avi",".mp3"};
int Index = -1;
for (int i = 0; i < suffix.length; i++) {
if(Name.endsWith(suffix[i])) {
Index = i;
break;
}
}
if(Index == -1) {
System.out.println("暂时不支持该后缀!");
System.out.println("Program exit!");
System.exit(0);
}
pathName2 += "\\oneCopy2" + suffix[Index];
System.out.println("复制路径为:" + pathName2);
File file2 = new File(pathName2);
if(file == null) {
System.out.println("No Select!");
System.out.println("Program exit!");
System.exit(0);
}
long startTime = System.currentTimeMillis();
try {
inputStream = new FileInputStream(file);
binputStream = new BufferedInputStream(inputStream);
outputStream = new FileOutputStream(file2);
boutputStream = new BufferedOutputStream(outputStream);
System.out.println("正在复制,请稍后.......");
int i = -1;
while((i = binputStream.read()) != -1) {
boutputStream.write(i);
}
System.out.println("复制成功!");
} catch (Exception e) {
e.printStackTrace();
}finally {
try {
boutputStream.close();
outputStream.close();
binputStream.close();
inputStream.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
long endTime = System.currentTimeMillis();
return (endTime - startTime);
}
}