⑴ java中输入输出中文乱码,怎么办
解决办法:
1.在代码区域右键 -> run as -> run configurations -> common(右侧) -> console encoding
如果出现此错误,此时的编码格式应该是UTF-8,选择Other,这时可能没有GBK选项,如果没有,则执行之后操作。
2.更改该项目的文本文件编码,项目右键 -> properties -> resource -> 先将 text file encoding调整回GBK,然后再回去重新设置console encoding编码为GBK。
⑵ Java IO读取txt文件乱码。前提不知道文档是什么编码格式
1首先获得一个文件句柄。File file = new File(); file即为文件句柄。两人之间连通电话网络了。接下来可以开始打电话了。
2通过这条线路读取甲方的信息:new FileInputStream(file) 目前这个信息已经读进来内存当中了。接下来需要解读成乙方可以理解的东西
3既然你使用了FileInputStream()。那么对应的需要使用InputStreamReader()这个方法进行解读刚才装进来内存当中的数据
4解读完成后要输出呀。那当然要转换成IO可以识别的数据呀。那就需要调用字节码读取的方法BufferedReader()。同时使用bufferedReader()的readline()方法读取txt文件中的每一行数据哈。
⑶ 为什么java 用IO流读docx文件里的内容打印在控制台是乱码
肯定是乱码啊...那是因为docx 里面的东西其实进行过某些格式整合到一起的文件 你可以把一个word文件的后缀改成zip 解压缩打开看一下就知道...
java读取docx里面的东西 可以使用 poi ,具体怎么做可以在网上搜一下
⑷ 在Java的io流中为什么我向TXT文件输出整形数据,结果出现乱码
因为每一种文件都有它自己的编码方式,window默认是GBK编码会出现乱 用一下转换流例如:
转换流在构造时可以制定其编码集合,例如:
InputStream isr = new InputStreamReader
(System.in, “GBK”)
改下编码方式。
⑸ 关于Java问题
二进制写入?听谁说的?
IO的话就字节流和字符流两种方式
这里就是将byte类型的数组元素以字节流的方式写入test.txt文件里,数组中的元素对应ASCII码
然后再通过字节流的方式读取
至于读取会出现乱码是因为
在ASCII码表中,前32个字符是不能用于打印的编码,而是用于控制像打印机一样的外围设备。所以打印出来看起来这样的乱码
如果是读取占用一个字节的字符显示的话问题不是太大。
但如果涉及到中文(等需要多个字节表示的字符)使用字节流读取显示就会有乱码的问题
例如 “中” 假定一个中文占用2个字节的话
字节流一个字节一个字节的读取,本来“中”是两个字节表示的,但字节流读一个显示一个,就造成原本“中”这个字被分成两半读取,显示出来的肯定就不对咯
⑹ java.io.EOFException怎么解决,同时文件怎么显示乱码
错误修正:
/*
* 数据的读取
*/
public void load(File file) {
// 文件输入流
FileInputStream inputStream;
DataInputStream input = null;
try {
inputStream = new FileInputStream(file);
// 数据输入流
input = new DataInputStream(inputStream);
// 读出
String tempname;
int temptime;
while (input.available() > 0 && (tempname = (String) input.readUTF()) != null) {
temptime = (int) input.readInt();
insert(tempname, temptime);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (input != null) {
try {
input.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
⑺ java.io 写入之后,打开txt 数字乱码成acsii码
这是正常的,writeInt写数据底层使用的是位操作你可以把它当做字节读写方式,而acsii是字符读写的方式。所以你看data.txt会有乱码。就比如35 acsii看作是字符‘3’和字符‘5’,而使用writeInt就是各种移位操作最后是一个32位二进制int.望采纳
⑻ java 中io 我用为什么乱码
FileReader是读字符流的,你用fr.getEncoding()看看,编码格式应该不是GBK的!但又没有设置编码的方法,你可以用InputStreamReader来实现,
InputStreamReader in=new InputStreamReader(new FileInputStream("d:\\学习\\素材\\myT.txt"),"GBK");这样就把编码高为GBK,再输出就不会有乱码了吧!