package com.test;
import org.junit.Test;
public class JunitTest {
@Test
public void test(){
String path = "D://1.txt";
String newPath = "D://2.txt";
try { // 防止文件建立或读取失败,用catch捕捉错误并打印,也可以throw
/* 读入TXT文件 */// 要读取以上路径的input。txt文件
File filename = new File(path);
// 建立一个输入流对象reader
InputStreamReader reader = new InputStreamReader(new FileInputStream(filename));
// 建立一个对象,它把文件内容转成计算机能读懂的语言
BufferedReader br = new BufferedReader(reader);
String line = "";
line = br.readLine();
/* 写入Txt文件 */// 相对路径,如果没有则要建立一个新的output。txt文件
File writename = new File(newPath);
// 创建新文件
writename.createNewFile();
BufferedWriter out = new BufferedWriter(new FileWriter(writename));
while (line != null) {
// 一次读入一行数据
line = br.readLine();
System.out.println(line.toString());
// /r/n即为换行
out.write(cnToUnicode(line)+"/r/n");
out.flush(); // 把缓存区内容压入文件
}
out.close(); // 最后记得关闭文件
} catch (Exception e) {
e.printStackTrace();
}
}
@Test
public void test1(){
System.out.println(cnToUnicode("部队"));
System.out.println(unicodeToCn("//u4e2d//u56fd//u4eba//u6c11//u89e3//u653e//u519b//u37//u31//u39//u38//u38//u90e8//u961f"));
}
/**
* 中文转unicode
* @param cn
* @return
*/
private static String cnToUnicode(String cn) {
char[] chars = cn.toCharArray();
String returnStr = "";
for (int i = 0; i < chars.length; i++) {
returnStr += "//u" + Integer.toString(chars[i], 16);
}
return returnStr;
}
/**
* unicode转中文
* @param unicode
* @return
*/
private static String unicodeToCn(String unicode) {
/** 以 / u 分割,因为java注释也能识别unicode,因此中间加了一个空格*/
String[] strs = unicode.split("////u");
String returnStr = "";
// 由于unicode字符串以 / u 开头,因此分割出的第一个字符是""。
for (int i = 1; i < strs.length; i++) {
returnStr += (char) Integer.valueOf(strs[i], 16).intValue();
}
return returnStr;
}
}
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/18555.html