那是你选中的文件内容字符编码与jvm缺省的文件编码不一致,如unix下jvm缺省文件编码一般为iso8859-1,而回你的文件内容可能使用了GBK,可使用如下答代码:
FileInputStream fis = new FileInputStream(Abs);
InputStreamReader isr = new InputStreamReader(fis, "GBK"); //GBK替换成你文件内容使用的编码
BufferedReader br = new BufferedReader(isr);
Ⅱ java中把数据写入到文件中出现乱码是什么原因
你的文本是二进制的,除了用dos.writeUTF("xxx")写入的内容可以通过UTF-8编码打开看到以外其他的都是不可见的字符,系统记事本是用GBK编码打开的文本,所以会出现一些中文乱码,可以用其他记事本软件用UTF-8编码打开,DataOutputStream 是 写二进制的,要写文本字符串可以用其他的
Ⅲ 怎样用Java读取TXT文本乱码解决方案
这个方法很简单,就是获取txt文件中的一行数据,然后转换为数组,我这个文本中只有一行。就这种情况下获取到的str是乱码,我想出现乱码肯定是字符集编码的问题,然后自己新建了一个文本文档测试没有问题(开始用的文本时别的程序导出的),所以我估计是开始那个txt文件编码的问题,查看发现是Unicode编码(如何查看txt的编码呢,教你一个笨笨的办法:打开文件——另存为,然后看到最下面的编码,默认选择的就是当前文档的编码格式),问题就出现在这里。问题找到了就好解决了,修改代码为:
privateString[] getProjectData(File file){
String[] data =null;
try{
BufferedReader br =newBufferedReader(newInputStreamReader(newFileInputStream(file),"UTF-16"));
String str = br.readLine();
data = str.split(" ");
br.close();
}catch(FileNotFoundException e) {
e.printStackTrace();
}catch(IOException e) {
e.printStackTrace();
}
returndata;
}
使用文件流读取,转换编码为“UTF-16”,这样乱码问题就解决了。
Ⅳ java读取串口数据出现乱码
编码解码不统一,最好都设置成utf-8 在windows里就能设置开发工具的编码集
Ⅳ Java用BufferedReader读取文件中时总是乱码
@Test
publicvoidFileInput()throwsIOException{
Filef=newFile("io.txt");
FileInputStreamfip=newFileInputStream(f);
//构建InputStreamReader对象,编码与写入相同
InputStreamReaderreader=newInputStreamReader(fip,"UTF-8");
StringBufferstringBuffer=newStringBuffer();
while(reader.ready()){
//转成内char加到StringBuffer对象中容
stringBuffer.append((char)reader.read());
}
System.out.println(stringBuffer.toString());
reader.close();
fip.close();
}
Ⅵ java 读取文件乱码
这是因抄为两你写入文件时的编码和读取文件时的编码方式不一致导致的。
你写文件时,没有指定字符编码,但是你读取文件内容时,指定了是以UTF-8编码来读取的。
读写文件编码必须保持一致才能正确显示。
你可以在读取文件时,使用默认的编码进行读取:
InputStreamReader read = new InputStreamReader (new FileInputStream(file));
Ⅶ Java读取二进制文件 乱码 求大神帮忙
String marketID =new String(itemBuf,0,8);
改为
String marketID =new String(itemBuf,0,8,Charset.forName("UTF-8"));
其他行类似
如果你的二进制文件是其他编码的,就用相应的编码替换UTF-8