先说比较常用的方法:
FileInputStream inputStream = new FileInputStream(srcFileName);
FileOutputStream outputStream = new FileOutputStream(tagFileName);
byte[] readBytes = new byte[1024];
int readLength = inputStream.read(readBytes);
while (readLength != -1)// 读取数据到文件输出流
{
outputStream.write(readBytes, 0, readLength);
outputStream.flush();
readLength = inputStream.read(readBytes);
}
// 关闭相关对象
inputStream.close();
outputStream.close();
这是使用标准io包的api进行文件的读写。
下面再看nio的读写方法:
File in = new File(srcFileName);
File out = new File(tagFileName);
FileInputStream inputStream = new FileInputStream(in);
FileChannel inChannel = inputStream.getChannel();
long inputSize = inChannel.size();
MappedByteBuffer inBuffer = inChannel.map(
FileChannel.MapMode.READ_ONLY, 0, inputSize);
// 使用通道方式复制文件
FileOutputStream outputStream = new FileOutputStream(out);
FileChannel outChannel = outputStream.getChannel();
outChannel.write(inBuffer);
// 关闭相关对象
inChannel.close();
inputStream.close();
outChannel.close();
outputStream.close();
大家觉得是旧的io和新的io复制文件更好呢?
FileInputStream inputStream = new FileInputStream(srcFileName);
FileOutputStream outputStream = new FileOutputStream(tagFileName);
byte[] readBytes = new byte[1024];
int readLength = inputStream.read(readBytes);
while (readLength != -1)// 读取数据到文件输出流
{
outputStream.write(readBytes, 0, readLength);
outputStream.flush();
readLength = inputStream.read(readBytes);
}
// 关闭相关对象
inputStream.close();
outputStream.close();
这是使用标准io包的api进行文件的读写。
下面再看nio的读写方法:
File in = new File(srcFileName);
File out = new File(tagFileName);
FileInputStream inputStream = new FileInputStream(in);
FileChannel inChannel = inputStream.getChannel();
long inputSize = inChannel.size();
MappedByteBuffer inBuffer = inChannel.map(
FileChannel.MapMode.READ_ONLY, 0, inputSize);
// 使用通道方式复制文件
FileOutputStream outputStream = new FileOutputStream(out);
FileChannel outChannel = outputStream.getChannel();
outChannel.write(inBuffer);
// 关闭相关对象
inChannel.close();
inputStream.close();
outChannel.close();
outputStream.close();
大家觉得是旧的io和新的io复制文件更好呢?
本文详细介绍了两种文件复制方法:一种是使用Java标准IO包API的传统方法;另一种是使用NIO包实现的现代方法。通过对比两种方法的具体实现过程,帮助读者理解不同场景下选择合适方案的重要性。
941

被折叠的 条评论
为什么被折叠?



