把fileContent用 getBytes(编码1),编码2 这种形式改一下.
解决方案 »
- java 版的仿QQ截图谁有源码?
- java从入门到精通要看那些书籍,各位高手来说说
- baidu笔试题: 1900个员工,至少有多少个员工同年同月同日生
- 怎么利用struts调用word并对它进行各种操作,急!!!
- 请大侠帮我看一下这个错误??Failed to convert property value of type [java.lang.String] to required type [java.lang.Class] for。。。
- javamail通过imap收邮件的问题,急!
- 基础问题
- java ssh jdbc 链接 oracle 问题。新手弄了两天了,999
- help
- 怎样实现把逻辑树结构保存到集合中? (超急,搞定300够吗)
- 实体bean问题!!!
- Weblogic的连接池超时问题怎么解决阿,是不一段时间会自动关闭
/**
* 读取文本文件内容
* @param filePathAndName 带有完整绝对路径的文件名
* @param encoding 文本文件打开的编码方式
* @return 返回文本文件的内容
*/
public String readTxt(String filePathAndName,String encoding){
encoding = encoding.trim();
StringBuffer str = new StringBuffer("");
String st = "";
try{
FileInputStream fs = new FileInputStream(filePathAndName);
InputStreamReader isr;
if(encoding.equals("")){
isr = new InputStreamReader(fs);
}else{
isr = new InputStreamReader(fs,encoding);
}
BufferedReader br = new BufferedReader(isr);
try{
String data = "";
while((data = br.readLine())!=null)
{
str.append(data+"\n");
}
}catch(Exception e){
str.append(e.toString());
}finally{
br.close();
isr.close();
fs.close();
}
st = str.toString();
}catch(IOException es){
st = "";
}
return st;
}
String strContent = fileContent;
myFile.println(strContent);
myFile.close();
--------
PrintWriter myFile = new PrintWriter(myFilePath);
String strContent = fileContent;
myFile.println(new String(strContent.getBytes(encoding)));
myFile.close();
"FileOperate.java": incompatible types; found : java.io.FileWriter, required: java.io.PrintWriter at line 183, column 35
PrintWriter myFile=new PrintWriter(new FileWriter(myFilePath));
String strContent = new String(fileContent.getBytes(encoding));
myFile.println(strContent);
myFile.close();
OutputStreamWriter outStreamWriter = new OutputStreamWriter(fileWriter, "gb2312");
PrintWriter print = new PrintWriter(outStreamWriter);
项目中使用...
起初项目是工作在Win2k下, 文件的r/w一切正常, 后来在MAC机下测试, 发现r/w全是乱码, 组长说MAX OS2使用UTF-8编码,后来分析:win2k(中文版)默认使用gb2312/gbk, MAC OS2使用UTF-8, 在对 String对象的业务修改时, 已把它转化为Gb2312,但存/取时Java按他本地编码存, 所以全是???,后来改为上面那段代码就好了. 需要注意一点, 如果String已是UTF-8, 再使用gb2312toUTF-8转码的话, 那么串又会产生"??".