1、实现原理:
通过输入流读取文件的内容,在通过输出流把读取到的内容输出到其他文件中,然后再读取结束后删除原来的文件就完成了文件的剪切。
1)首先在将要把文件剪切到的地方创建一个同一个类型的文件;
2)利用输入流读取原文件的内容;
3)在读取的过程中,把读取到的内容通过输出流写入到刚才创建的文件中;
4)在文件复制结束以后删除原文件既完成了文件的剪切。
2、代码实现(把桌面的一个jpg文件剪切到D盘中):
package copy;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
public class CutFileTest {
public static void main(String[] args) {
File file1 = new File("C:\\Users\\Administrator\\Desktop\\a.jpg");
File file2 = new File("D:\\a.jpg");
//在程序结束时删除文件1
file1.deleteOnExit();
try {
//在D盘创建文件2
file2.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
cutFile(file1, file2);
}
public static void cutFile(File file1, File file2){
FileOutputStream fileOutputStream = null;
InputStream inputStream = null;
byte[] bytes = new byte[1024];
int temp = 0;
try {
inputStream = new FileInputStream(file1);
fileOutputStream = new FileOutputStream(file2);
while((temp = inputStream.read(bytes)) != -1){
fileOutputStream.write(bytes, 0, temp);
fileOutputStream.flush();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}catch (IOException e) {
e.printStackTrace();
}finally{
if (inputStream != null) {
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (fileOutputStream != null) {
try {
fileOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}