Java NIO 文件拷贝与内容追加
(后期博文会对代码中涉及的知识进行一一说明,请先自信参考进行学习。如有高人愿虚心请教学习,关于使用FileChannel和ByteBuffer以及MappedByteBuffer的文件操作方式也会在以后分享给大家)
下面是本次展示的代码(请多多参考API文档):
package top.smartprinting;
import java.io.IOException;
import java.nio.file.*;
/**
* @author Chief
* @date 2019-08-01 11:00
* @Email MyEvery7655@gmail.com
*/
public class Main {
public static void main(String[] args) {
//文件根路径
String rootPath = "C:\\Users\\ThinkPad\\Desktop\\TestNio";
//生成原文件One.txt Two.txt的Path对象
Path pathOne = FileSystems.getDefault().getPath(rootPath, "One.txt");
Path pathTwo = FileSystems.getDefault().getPath(rootPath, "Two.txt");
//生成目标生成的文件JavaNio.java的Path对象
Path pathJavaNio = FileSystems.getDefault().getPath(rootPath, "JavaNio.java");
try {
//实现文件拷贝,将One.txt文件拷贝到JavaNio.java文件中
Files.copy(pathOne, pathJavaNio, StandardCopyOption.COPY_ATTRIBUTES, StandardCopyOption.REPLACE_EXISTING);
//实现文件追加写入,将Two.txt文件的内容追加到JavaNio.java文件已有内容后
Files.write(pathJavaNio, Files.readAllBytes(pathTwo), StandardOpenOption.APPEND, StandardOpenOption.CREATE, StandardOpenOption.SYNC, StandardOpenOption.WRITE);
//实现文件追加在行尾,在行尾添加 LF(换行)、CR(回车)、}(尾花括号)
Files.write(pathJavaNio, new byte[]{10, 13, 125}, StandardOpenOption.APPEND, StandardOpenOption.CREATE, StandardOpenOption.SYNC, StandardOpenOption.WRITE);
} catch (IOException e) {
e.printStackTrace();
}
}
}
请多多参考API文档:
代码测试时使用的文件:
One.txt
Two.txt
JavaNio.java(默认情况下根路径下没有创建此文件,由代码进行创建)