1. /**
2. * 给定一个源文件路径或者File和目标路径,把源文件路径下的的所有txt文件和文件夹拷贝到目标路径下
3. * 并且可以按照给定的编码输出txt文件
4. * @author myyate
5. *
6. */
7. public class Converter {
8. public Converter(String inPath, String outPath) throws Exception {
9. this(inPath, outPath, DEFAULT_ENCODING);
10. }
11. public Converter(String inPath, String outPath, String encoding)
12. throws Exception {
13. this(new File(inPath), new File(outPath), encoding);
14. }
15. public Converter(File inFile, File outFile) throws Exception {
16. this(inFile, outFile, DEFAULT_ENCODING);
17. }
18. public Converter(File inFile, File outFile, String encoding) throws Exception {
19. this.inFile = inFile;
20. this.outFile = outFile;
21. if(!outFile.exists()) {
22. outFile.mkdir();
23. }
24. this.encoding = encoding;
25. }
26.
27. public void convert() throws Exception {
28. copyFiles(inFile, outFile);
29. }
30.
31. private void copyFiles(File inDirectory, File outDirectory) throws Exception {
32. for(File file : inDirectory.listFiles(new TxtFileFilter())) {
33. File outFile = new File(outDirectory.getAbsolutePath(), file.getName());
34. if(file.isFile()) {
35. //如果是文件,就把文件拷贝到目标文件夹中
36. copySingleFile(file, outFile);
37. } else if(file.isDirectory()) {
38. if(!outFile.exists()) {
39. outFile.mkdir();
40. }
41. copyFiles(file, outFile);
42. }
43. }
44. }
45.
46. private void copySingleFile(File src, File des) throws Exception {
47. if(!des.exists()) {
48. des.createNewFile();
49. }
50. String encodingUse = ((encoding == null) ? DEFAULT_ENCODING : encoding);
51. Reader in =
52. new BufferedReader(new InputStreamReader(new FileInputStream(src)));
53. //设定输出文件的编码
54. Writer out =
55. new BufferedWriter(new OutputStreamWriter(new FileOutputStream (des), encodingUse));
56.
57. char[] buffer = new char[4096];
58. int readBytes = -1;
59. while((readBytes = in.read(buffer)) != -1) {
60. out.write(buffer, 0, readBytes);
61. }
62. out.flush();
63.
64. out.close();
65. in.close();
66. }
67.
68.
69. class TxtFileFilter implements FileFilter {
70.
71. public boolean accept(File pathname) {
72. if(pathname.isDirectory()) {
73. return true;
74. }
75.
76. String absolutePath = pathname.getAbsolutePath();
77. String suffix = absolutePath.substring(absolutePath.length() - 3);
78. //只拷贝txt文件
79. if("txt".equalsIgnoreCase(suffix)) {
80. return true;
81. }
82.
83. return false;
84. }
85. }
86.
87. private File inFile; //输入路径
88. private File outFile; //输出路径
89. private String encoding; //输出文件编码
90. private static String DEFAULT_ENCODING = "GBK";
91. }
测试代码如下:
java 代码
1. public class Test {
2.
3. static String IN_PATH = "F:/Novel";
4. static String OUT_PATH = "F:/NovelConvert";
5.
6. public static void main(String[] args) throws Exception {
7. Converter convert = new Converter(IN_PATH, OUT_PATH, "Unicode");
8. convert.convert();
9. }
10. }
程序是可以正常执行了,并且也转码了,不过不幸的是转成后的文件格式不是unicode,而是unicode big endian,拷贝到手机里还是乱码,nnd,现在也不管手机可否看了,我想问大家一下,如何修改才可以把txt文件改成unicode格式呢?
分享到:
相关推荐
这行代码最终只创建了一个对象,因为常量池的存在使得相同的字符串常量只会创建一次。 38. try块中的return语句会先执行,然后执行finally块,然后再返回。 39. 这个问题没有提供代码,因此无法分析输出结果。 40...
java.util.function包是Java 8中的一个新包,它提供了一系列用于函数式编程的函数式接口,这些接口是Java 8流API操作的核心组成部分。 《Streams》章节则介绍了流的创建和操作。流API是Java 8中引入的一个强大的...
而在游戏开发中,合理运用数组、集合等数据结构存储游戏状态,是设计模式中的一个基本应用。 5. 事件处理机制:在文件中“setbutton”和“LabelPanelbutton”表明了事件监听器的使用。SWING组件可以通过添加事件...
在DAO层,除了基础类外,还提到了一个具体的DAO类mindDAO,该类继承自基础DAO类。mindDAO类负责具体的数据库操作,如查询、添加和更新操作。在文档的摘录中,可以看到mindDAO类中的以下方法: - getAll方法:这个...
提取物的基础可能是日期/时间:在此时间之后创建或修改的每个文件/文件夹都将位于摘录中另一个文件夹结构:每个文件/文件夹在另一个文件夹结构中不存在,或者在引用文件之后进行了修改,将出现在摘录中。...
整体来看,Eclipse与Maven的集成是一个复杂但非常有用的过程,可以帮助开发者更高效地管理和构建Java项目。上述内容涵盖了从环境搭建到项目构建和发布的基本步骤,对于想要掌握Eclipse中Maven使用方法的开发者而言,...
发布一个RSS文件后,这个RSS Feed中包含的信息就能直接被其他站点调用,而且由于这些数据都是标准的XML格式,所以也能在其他的终端和服务中使用。 如果从RSS阅读者的角度来看,完全不必考虑它到底是什么意思,...
由于提供的文件内容是一个关于“logic标签库.pdf”的摘录,内容涉及了一系列与JSP页面开发相关的标签和属性。为了使内容更加通顺,以下是对这些知识点的整合和解释,将尽量避免直接引用原始文档的文字以减少OCR错误...
当创建、更新或删除操作发生时,我们可以触发一个自定义的事件,然后在拦截器中监听这个事件,从而清理相关的缓存项。这可以通过实现`ApplicationListener`接口并重写`onApplicationEvent()`方法来完成。 总结起来...
标题:“401java-reading-notes”是一个由代码研究员训练营(CODE-401)提供的Java学习资料,特别是针对Java编程语言的基础和深入理解进行的阅读笔记。这些笔记旨在帮助学员系统地掌握Java的知识体系,包括但不限于...
根据提供的文件内容,以下是关于"基于WEBGIS的电子地图的设计与实现"的知识点总结: 1. WebGIS概念与特点:WebGIS指的是基于Internet或Intranet网络环境的一种应用地理信息的计算机信息系统。它被国际学术界称为...
从提供的文件内容来看,此文件似乎是关于全国计算机二级考试题目的部分摘录。全国计算机二级考试是中国计算机等级考试(National Computer Rank Examination,简称NCRE)的第二级,主要面向大专及本科在校学生和社会...
文档中提到的标签“Camstar”是指Camstar软件系统本身,这是Siemens提供的一个用于管理制造业务的软件平台,它涵盖了从产品设计到生产管理的整个产品生命周期。标签也表明文档内容专注于Camstar软件系统的技术层面,...
4. **XML数据结构**:从文档摘录的部分可以看出,XML文档通常包括一个根节点,如"<root>",以及多个子节点。例如,"<QueryCondition>"节点可能用于描述查询条件,而"<hphm>"节点则可能包含车辆的编号信息。正确构建...
- Ctrl+F3/F3:查找下一个/上一个。 4. 导航快捷键: - Ctrl+R:转到特定符号。 - Ctrl+T:转到类型。 - Ctrl+L:跳转到代码行。 - Ctrl+O:转到文件。 - Ctrl+N:新建项目或文件。 5. 代码编辑快捷键: - ...
规范明确指出,其内容受版权保护,且可能受到一个或多个美国专利、外国专利或待审批申请的保护。除了下面提供的许可外,未经 Oracle America, Inc. 以及其授权方的事先书面授权,不得以任何形式复制 Specification ...