Java进阶API第七章
一. 阶段
Java NIO - File
Java NIO
中的Files
类(java.nio.file.Files
)提供了多种操作文件系统中文件的方法。Java Files
类是Java 1.7中引入的,是java.nio.file
包的一部分
@Test
public void FilesCopyTest(){
// 设置复制文件路径
Path path1 = Paths.get("D:\\1.txt");
Path path2 = Paths.get("D:\\2.txt");
// StandardCopyOption.REPLACE_EXISTING是设置复制操作的选项,表示如果目标文件已经存在,覆盖它。
try {
Files.copy(path1,path2,StandardCopyOption.REPLACE_EXISTING);
System.out.println("复制成功");
} catch (IOException e) {
System.out.println("复制失败");
}
}
二.字符集编码吹X
- 字符是许多字符的集合
- 字符编码字面意思就是对字符进行编码,将某个字符映射成其他形式的数据以便在计算机中存储和传输
- 如果每种语言都要出一种字符集来存储的话,那就无法统一标准了,会造成多冗余的工作
- Unicode是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求
三.转换字符编码
- Java批量转换文件夹中文件的编码(从gbk到utf8);
- 可以对网上下载的教程源码进行批量转码,一键搞定,生成新文件覆盖源文件
- 注意网上下载的源码包一般有class文件,一般只需要转码src文件夹即可
- 需要导入commons-io jar包
import org.apache.commons.io.FileUtils; import java.io.File; import java.io.IOException; import java.nio.charset.Charset; public class CodeTest { public static void main(String[] args) { File folder = new File("folder_path"); File[] files = folder.listFiles(); for (File file : files) { if (file.isFile() && file.getName().toLowerCase().endsWith(".txt")) { try { String content = FileUtils.readFileToString(file, Charset.forName("GBK")); FileUtils.writeStringToFile(file, content, Charset.forName("UTF-8")); System.out.println("文件 " + file.getName() + " 处理成功。"); } catch (IOException ex) { System.out.println("文件 " + file.getName() + " 处理失败:" + ex.getMessage()); } } } } }