请教Unicode文件的读写
有一个Unicode文件,每行有空格(每行开始和结尾),如何去除?
还有文件中有[ ] ,改为{ }。如何实现?
最好有实例,谢谢啦!
有一个Unicode文件,每行有空格(每行开始和结尾),如何去除?
还有文件中有[ ] ,改为{ }。如何实现?
最好有实例,谢谢啦!
解决方案 »
- eclipse是否自带了JDK和JRE,如果不是,那是否要去官网分别下载JDK和JRE
- 初学者问题
- 找工作的朋友们,小心成为 “ 速冻鱼 ”,五个在北京,刚前后脚失业的开发人员的血泪史
- 在JB里面,如何添加数组的Add Watch
- 【JavaDoc】Package Description应该写在哪里?
- 如何获取一个类在内存中已经创建的对象数目?
- 如何运行 JAR 文件
- 急,急,急??? java 在奔腾四运行出错??
- String x="abc";if(x.equals("abc")) x="uvw";那么x就变成"uvw",String对象不是不能修改吗?为什么会这样?
- JSONArray.fromObject(list)的问题
- 求jNative 高手解答
- java中数据库连接关闭的时候报异常
[ ] ,改为{ }可以用字符串替换。
关键是想学习一下Unicode文件的读写是如何实现的,Unicode文件不同于ANSI文件,Unicode文件是双字节,文件头还有特殊标志。不是为了单纯解决上面提出的问题(用WORD或许就可解决),是想学习JAVA语言。
做个示例吧,先是不修改读取,后展示修改后的结果:先建个unicodeFile.txt文件 aaa你好
学习unicode文件读取
[注意这个括号是要替换的]注意保存为Unicode格式。
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FilterReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Reader;public class UnicodeFileReadDemo { public static void main(String[] args) throws IOException {
InputStreamReader in = new InputStreamReader(new FileInputStream("yourFilePath\\unicodeFile.txt"), "Unicode");
BufferedReader bufferedReader = new BufferedReader(in);
String str = bufferedReader.readLine();
while(str != null){
System.out.println(str);
str = bufferedReader.readLine();
}
bufferedReader.close();
System.out.println("----------------");
in = new InputStreamReader(new FileInputStream("yourFilePath\\unicodeFile.txt"), "Unicode");
FilterUnicodeChar reader = new FilterUnicodeChar(in);
int c;
while((c = reader.read()) != -1){
System.out.print((char)c);
}
reader.close();
}}
class FilterUnicodeChar extends FilterReader{ protected FilterUnicodeChar(Reader in) {
super(in);
} @Override
public int read() throws IOException {
int c = super.read();
return c == -1 ? c : filter((char)c);
} @Override
public int read(char[] cbuf, int off, int len) throws IOException {
int nLength = super.read(cbuf, off, len);
int last = off + nLength;
for(int i = off; i < last; i++){
cbuf[i] = filter(cbuf[i]);
}
return nLength;
}
private char filter(char c){
char result = '\u0000';
switch (c) {
case ' ' :
case '\r':
result = '\uFEFF';
break;
case '[':
result = '{';
break;
case ']':
result = '}';
break;
case '\n':
result = '\n';
break;
default:
result = c;
break;
}
return result;
}
}
运行结果: aaa你好
学习unicode文件读取
[注意这个括号是要替换的]
----------------
aaa你好
学习unicode文件读取
{注意这个括号是要替换的}
谢谢!我试一试。
不知Unicode文件如何写入?
out.write(" aaa你好 \r\n");
out.write(" 学习unicode文件读取 \r\n");
out.write("[注意这个括号是要替换的]");
out.close();