先说比较常用的方法:
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复制文件更好呢?