标题表述不清楚,在此说明。
我将1-65535使用BufferedWriter 写入文件中,读取的时候是输出的int类型的数,为什么 “?”号读出来的是63.
我查了下好像是关于JVM字符集编码的问题。
请问该如何解决才能够正确读取。我使用的是myeclipse.
import java.io.*;public class a {
public static void main(String[] args) throws IOException {
String file = "e:/a.txt";
int j = 0; BufferedWriter bw = new BufferedWriter(new FileWriter(file));
BufferedReader br = new BufferedReader(new FileReader(file));
for (int i = 0; i < 65535; i ++) {
bw.write(i);
}
bw.flush();
while (j != -1) {
j = br.read();
System.out.println(j);
}
bw.close();
br.close();
}
}
我将1-65535使用BufferedWriter 写入文件中,读取的时候是输出的int类型的数,为什么 “?”号读出来的是63.
我查了下好像是关于JVM字符集编码的问题。
请问该如何解决才能够正确读取。我使用的是myeclipse.
import java.io.*;public class a {
public static void main(String[] args) throws IOException {
String file = "e:/a.txt";
int j = 0; BufferedWriter bw = new BufferedWriter(new FileWriter(file));
BufferedReader br = new BufferedReader(new FileReader(file));
for (int i = 0; i < 65535; i ++) {
bw.write(i);
}
bw.flush();
while (j != -1) {
j = br.read();
System.out.println(j);
}
bw.close();
br.close();
}
}
解决方案 »
- null被强制转化为字符?
- 急!请问怎样发送socket请求包,并获得返回数据
- 求生兔子问题的程序,java实现
- 写了个动态代理抛出了异常,请知道的指点一下,谢谢。
- jfm如何安装,如何使用!
- java程序如何读取声音文件(不用Applet,而是一般的java application程序中.....)
- 能不能在 class 内部 new 自己,会不会造成死循环,这样做有没有什么好处
- 菜鸟提问:如何用java.exe去运行不同路径下的class文件?
- java到底指j++ builder or vj++ or 其他?
- 救命呀!我编写的BMP就是访问不了我已经配置好的Connections Pool,已经3天了,一直没解决,请高手帮帮忙吧!!
- 求助
- 在http://sourceforge.net如何做复杂查询???
br.read();这两个不匹配吧 read是读一个字节吧 write(i)写个int
改用readInt writeInt试试
System.out.println((char)j); // 用char输出
br.read()方法是读取的单个字符,其返回值是int类型,将读取到的char转换成int返回这里可以肯定是没有错的.
因为我用的是循环的写入 所以写入的顺序可以肯定是1-65535
我希望的是读取的时候,读出来的int类型数据也能够是 1-65535
而现在我读取的int类型数据,有很多的 63 ,63转成char就是 “?”。
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file),"UTF-8"));
我试了下进行输入文件,然后读取出来,还是会有部分的编码仍然是63.另这个是我当时写闷进去了,没想到DataInputStream 和 DataOutputStream。
上午才想到
分别在写入和读取的时候使用上面的流。就不会出现部分编码仍然是63的问题。