字节流FileInputStream和FileOutputStream复制文件
public static void main(String[] args) throws IOException {
FileInputStream inputStream = new FileInputStream("d:/abc.jpg");
FileOutputStream outputStream = new FileOutputStream("e:/abc.jpg");
byte[] buff = new byte[1024];
int len = 0;
while ((len = inputStream.read(buff)) != -1) {
outputStream.write(buff,0, len);
}
inputStream.close();
outputStream.close();
}
字节缓冲流BufferedInputStream和BufferedOutputStream复制文件
public static void main(String[] args) throws IOException {
BufferedInputStream inputStream = new BufferedInputStream(new FileInputStream("d:/abc.jpg"));
BufferedOutputStream outputStream = new BufferedOutputStream(new FileOutputStream("e:/abc.jpg"));
byte[] buff = new byte[1024];
int len = 0;
while ((len = inputStream.read(buff)) != -1) {
outputStream.write(buff,0, len);
}
inputStream.close();
outputStream.close();
}
字符流FileReader和FileWriter复制文件-会有乱码问题,要保证编码一致
public static void main(String[] args) throws IOException {
FileReader fileReader = new FileReader("d:/abc.txt");
FileWriter fileWriter = new FileWriter("D:/def.txt");
int ch ;
while ((ch = fileReader.read()) != -1) {
fileWriter.write(ch);
}
fileReader.close();
fileWriter.close();
}
字符字节转换流OutputStreamWriter和InputStreamReader复制文件
public static void main(String[] args) throws IOException {
InputStreamReader inputStreamReader = new InputStreamReader(new FileInputStream("D:/gh.txt"), "utf-8");
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(new FileOutputStream("D:/def.txt"), "utf-8");
int temp ;
while ((temp = inputStreamReader.read()) != -1) {
System.out.println((char)temp);
outputStreamWriter.write(temp);
}
outputStreamWriter.close();
inputStreamReader.close();
}
缓冲字符流BufferedWriter和BufferedReader复制文件
public static void main(String[] args) throws IOException {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream("D:/gh.txt"), "utf-8"));
BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("D:/def.txt"), "utf-8"));
String temp ;
while ((temp = bufferedReader.readLine()) != null) {
bufferedWriter.write(temp);
bufferedWriter.newLine();
}
bufferedReader.close();
bufferedWriter.close();
}
工具类common-io
递归复制文件夹
public static void main(String[] args) throws Exception {
copyDir(new File("d:/abc"), new File("d:/def"));
}
private static void copyDir(File srcFile, File destFile) throws Exception {
File[] listFiles = srcFile.listFiles();
for(File file : listFiles) {
if (file.isFile()) {
copyFile(file, new File(destFile,file.getName()));
}
if (file.isDirectory()) {
File toFile = new File(destFile, file.getName());
toFile.mkdirs();
copyDir(file, toFile);
}
}
}
private static void copyFile(File srcFile, File destFile) throws Exception {
BufferedInputStream bufferedInputStream = new BufferedInputStream(new FileInputStream(srcFile));
BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(new FileOutputStream(destFile));
byte[] buff = new byte[2048];
int len ;
while ((len = bufferedInputStream.read(buff)) != -1) {
bufferedOutputStream.write(buff,0,len);
bufferedOutputStream.flush();
}
bufferedInputStream.close();
bufferedOutputStream.close();
}