private static void replace(File file,String searchStr,String replaceStr) {
// TODO Auto-generated method stub
if(searchStr == null){
return;
}
try{
/* FileReader reader = new FileReader(file);
char[] dates = new char[1024];
int count = 0;
StringBuilder sb = new StringBuilder();
while((count = reader.read(dates)) > 0){
String str = String.valueOf(dates, 0, count);
sb.append(str);
}
reader.close();*/
InputStreamReader isr = new InputStreamReader(new FileInputStream(file), "UTF-8");
StringBuffer sbread = new StringBuffer();
while (isr.ready()) {
sbread.append((char) isr.read());
}
isr.close();
// 从构造器中生成字符串,并替换搜索文本
String str = sbread.toString().replace(searchStr, replaceStr);
/* FileWriter writer = new FileWriter(file);
writer.write(str.toCharArray());
writer.close();*/
OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream(file),"UTF-8");
out.write(str.toCharArray());
out.flush();
out.close();
}catch(Exception e){
e.printStackTrace();
}
System.out.println("替换完成!");
}
因为FileWriter在写文件的时候,其编码方式似乎是System.encoding或者System.file.encoding(已经证明FileWriter和FileReader确实使用系统当前默认的编码方式,更多信息包括FileReader的详见http://www.javapractices.com/Topic42.cjp),*在中文win下encoding基本是gb2312,在en的win下基本是iso-8859-1,总之不是utf-8。*所以要创建一个utf-8的文件,用FileWriter是不行的。(FileWriter和FileReader都不支持通过参数指定编码方式,而OutputStreamWriter和InputStreamReader可以。这两个类从名字上就可以看到是字节流和字符流的组合,实际上也是连接两者的桥梁)。
目前不知道如何更改其用来写文件的编码方式,因此对于创建utf-8文件使用如下方式来代替。
分享到:
相关推荐
完善说明,通过对网上的东西,东拼西凑的,终于解决了GDAL读取中文的乱码问题,或者是通过设置Gdal.SetConfigOption("SHAPE_ENCODING","CP936")后,能够读取中文,但是还是存在一个BUG,那比较中文是“张三”,读取...
Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流。 Java绘制图片火焰效果 1个目标文件 摘要:Java源码,图形操作,火焰...
所有请求和响应均使用JSON格式和UTF-8编码。 Vansah的API是基于HTTP的,您可以使用简单的HTTP请求与之交互。 所有写入的请求都必须使用HTTP POST方法,所有读取的请求都必须使用HTTP GET方法。 数据以JSON格式和...
* java :UTF-8 * * 数据库: * mysql、oracle、DB2 :UTF-8 * * 开发工具:UTF-8 * 2. 文本文件用统一的字符集 且用字符流读取和写出文本相关文件(最常用) * 3...
byte[] bs = str.getBytes("utf-8"); for(int i=0;i;i++) { byte b = bs[i]; if(b==0) { bs[i]=9; } } str = new String(bs, "utf-8"); str = str.replace("\t", ""); ...
Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流。 Java绘制图片火焰效果 1个目标文件 摘要:Java源码,图形操作,火焰...
文件索引 Kotlin库监视目录中的更改和索引文件内容。... 支持utf-8编码文件。 注意事项 这使用了kotlin协程,因此请确保您的Java和Kotlin发行版是最新的。 它适用于Java 14.0.2和kotlin 1.4.10。 另请注意,由于默认
8 Android Android Android Android 开发入门 System System System System Requirements Requirements Requirements Requirements The sections below describe the system and software requirements for ...
开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...
开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...
开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...
要从源代码构建项目,请执行Maven目标:mvn clean编译程序集:单使用以下参数运行jar:java -jar -Dfile.encoding = UTF-8 ArduinoServer-1.0-SNAPSHOT.jar(这样编码不会消失)。 写入档案要发送写入文件的事件,...
可以在源代码中调整默认的英语语言/UTF-8 编码。 SMS:如果包含数字和正文文本,则存储为 URI 记录,如果还选择了可选标题和操作,则存储为智能海报。 带注释的 URL:包含 URL 和文本记录的 NDEF 消息。 类似于智能...
开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...
开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...
程序的默认设置编码是GBK,如果是UTF-8的用户,可以在首选项修改. 四,其它方面 1,可以选择音频设备,这在一定程度上可以选择几个设置对比一下效果.尽量减少播放器没有声音的情况. 2,增加在任务栏滚动显示歌曲...
开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...
开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...
开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...