复制文件
复制文件即为一般读取一般输出编写。
复制文件复制出来的文件为什么是空白?
可能是read()方法的参数问题。
注意:
- int read():从此输入流中读取一个字节的数据。
- int read(byte[] b):从此输入流 b.length最多 b.length字节的数据读 b.length字节数组。
复制文件:
方法一
package com.gem.demo.day0807;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
/**
* 复制文件
* @author OuTengTeng
*
*/
public class CopyDemo {
public static void main(String[] args) {
FileInputStream fis = null;
FileOutputStream fos = null;
try {
//1、先是文件(3.jpg)--(读出)-->数据
fis = new FileInputStream(new File("D:\\eclipse\\Workspace\\Test\\1.txt"));
//2、后是数据--(写入)-->文件(3copy.jpg)
fos = new FileOutputStream(new File("D:\\eclipse\\Workspace\\Test\\1copy.txt"));
int len;
byte[] b = new byte[1024];
while ((len = fis.read(b)) != -1) {
fos.write(b, 0, len);
}
fos.flush();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
fos.close();
fis.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
方法二
package com.gem.demo.day0806;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class FileCopy {
public static void main(String[] args) {
copy("D:\\eclipse\\Workspace\\Test\\1.txt", "D:\\eclipse\\Workspace\\Test\\No3.txt");
}
/**
*
* @param src 源文件
* @param target 目标文件
*/
public static void copy(String src, String target) {
FileInputStream fis = null;
FileOutputStream fos = null;
try {
fis = new FileInputStream(src);
fos = new FileOutputStream(target);
byte[] b = new byte[1024];
int len = -1;
while ((len = fis.read(b)) != -1) {
fos.write(b, 0, len);
}
//强制刷新
fos.flush();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
fos.close();
fis.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}