下面是Java复制文件和移动文件的示例攻略:
复制文件
1. 使用Java NIO库
Java NIO库提供了Channel
和ByteBuffer
两个类来进行文件复制操作。以下是一个简单的示例:
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
public class FileCopy {
public static void main(String[] args) {
try (FileChannel sourceChannel = new FileInputStream("source.txt").getChannel();
FileChannel destChannel = new FileOutputStream("destination.txt").getChannel()) {
ByteBuffer buffer = ByteBuffer.allocate(1024);
while (sourceChannel.read(buffer) != -1) {
buffer.flip();
while (buffer.hasRemaining()) {
destChannel.write(buffer);
}
buffer.clear(); // clear the buffer for next iteration
}
System.out.println("File copied successfully using Java NIO!");
} catch (Exception e) {
e.printStackTrace();
}
}
}
这个示例代码中,首先我们通过FileInputStream
和FileOutputStream
分别获得了读写文件的Channel
,然后创建了一个1024字节大小的ByteBuffer
。在循环中,每次读取到数据后,我们对ByteBuffer
进行flip()
操作,将它的写模式切换为读模式,然后将读到的数据通过destChannel.write(buffer)
写入到目标文件中。最后,我们通过buffer.clear()
清空缓冲区以供下一次读取。
2. 使用Java IO库
除了Java NIO库,Java IO库也提供了一种简单的文件复制方式,使用BufferedInputStream
和BufferedOutputStream
。下面展示了怎样使用Java IO库来复制文件:
import java.io.*;
public class FileCopy {
public static void main(String[] args) {
try (BufferedInputStream inputStream = new BufferedInputStream(new FileInputStream("source.txt"));
BufferedOutputStream outputStream = new BufferedOutputStream(new FileOutputStream("destination.txt"))) {
byte[] buffer = new byte[1024];
int length;
while ((length = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, length);
}
System.out.println("File copied successfully using Java IO!");
} catch (Exception e) {
e.printStackTrace();
}
}
}
同样地,我们使用FileInputStream
和FileOutputStream
分别生成了输入和输出流,并使用一个1024字节大小的字节数组作为缓冲区。在循环中,我们每次读取最多1024字节数据,然后通过输出流把这些数据写入到目标文件中。
移动文件
文件移动是指将指定文件从源目录下移动到目标目录下。在Java中实现文件移动的方法与复制文件类似,同样可以使用Java NIO库和Java IO库。下面是示例代码:
1. 使用Java NIO库
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
public class FileMove {
public static void main(String[] args) {
Path source = Paths.get("source.txt");
Path target = Paths.get("target.txt");
try {
Files.move(source, target);
System.out.println("File moved successfully using Java NIO!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
这个示例使用了Java NIO库提供的Files.move()
方法,把原文件移动到了目标文件路径下。我们只需要提供源文件的路径和目标文件的路径即可完成文件移动操作。如果源文件和目标文件在同一个目录下,那么你必须使用Files.move(source, target.resolve(source.getFileName()))
方法,否则会抛出源文件不存在的异常。
2. 使用Java IO库
import java.io.File;
public class FileMove {
public static void main(String[] args) {
File source = new File("source.txt");
File target = new File("target.txt");
if (source.renameTo(target)) {
System.out.println("File moved successfully using Java IO!");
} else {
System.out.println("Failed to move the file!");
}
}
}
Java IO库也提供了一种移动文件和重命名文件的方法,使用File.renameTo()
方法即可。我们只需要让源文件调用这个方法,并把目标文件作为参数传入,就可以完成文件移动操作。如果成功,这个方法会返回true,否则返回false。
以上就是Java复制文件和Java移动文件的示例分享,希望对你有所帮助!
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java复制文件和java移动文件的示例分享 - Python技术站