avatar
Java的中文读写问题# Java - 爪哇娇娃
y*o
1
查了本版历史,有的尽是有关Swing应用程序显示中文的问题,与我这个关系不大。
好长时间已经没有碰过Java了。
我要从一个纯文本文件file1.txt中将某些汉字逐个读出,并逐个写入文件file2.txt中。
写了如下的几行,只尝试读写一个汉字,不成功:
FileInputStream fis = new FileInputStream("file1.txt");
InputStreamReader isr = new java.io.InputStreamReader(fis, "GB2312");

FileOutputStream fos = new FileOutputStream("file2.txt");
OutputStreamWriter osw = new OutputStreamWriter(fos, "GB2312");
我不懂怎样读出汉字。
如果我用isr.read()并将其返回结果System.out.println出来的话,屏幕只会显示一个数
字25105, 这个数字应当是file1.txt的第一个汉字“我”了。怎样让它println出汉
avatar
F*n
2
java.nio






【在 y********o 的大作中提到】
: 查了本版历史,有的尽是有关Swing应用程序显示中文的问题,与我这个关系不大。
: 好长时间已经没有碰过Java了。
: 我要从一个纯文本文件file1.txt中将某些汉字逐个读出,并逐个写入文件file2.txt中。
: 写了如下的几行,只尝试读写一个汉字,不成功:
: FileInputStream fis = new FileInputStream("file1.txt");
: InputStreamReader isr = new java.io.InputStreamReader(fis, "GB2312");
:
: FileOutputStream fos = new FileOutputStream("file2.txt");
: OutputStreamWriter osw = new OutputStreamWriter(fos, "GB2312");
: 我不懂怎样读出汉字。

avatar
w*c
3
what u did should be right. When u take an input, it's always better to add an
extra decorator BufferedReader to ur Reader so ur data will be in String. when
u dump it to screen, u should also wrap System.out w/ an encoded
OutputStreamWriter.






【在 y********o 的大作中提到】
: 查了本版历史,有的尽是有关Swing应用程序显示中文的问题,与我这个关系不大。
: 好长时间已经没有碰过Java了。
: 我要从一个纯文本文件file1.txt中将某些汉字逐个读出,并逐个写入文件file2.txt中。
: 写了如下的几行,只尝试读写一个汉字,不成功:
: FileInputStream fis = new FileInputStream("file1.txt");
: InputStreamReader isr = new java.io.InputStreamReader(fis, "GB2312");
:
: FileOutputStream fos = new FileOutputStream("file2.txt");
: OutputStreamWriter osw = new OutputStreamWriter(fos, "GB2312");
: 我不懂怎样读出汉字。

avatar
c*r
4
java用GBK,不用GB2312






【在 y********o 的大作中提到】
: 查了本版历史,有的尽是有关Swing应用程序显示中文的问题,与我这个关系不大。
: 好长时间已经没有碰过Java了。
: 我要从一个纯文本文件file1.txt中将某些汉字逐个读出,并逐个写入文件file2.txt中。
: 写了如下的几行,只尝试读写一个汉字,不成功:
: FileInputStream fis = new FileInputStream("file1.txt");
: InputStreamReader isr = new java.io.InputStreamReader(fis, "GB2312");
:
: FileOutputStream fos = new FileOutputStream("file2.txt");
: OutputStreamWriter osw = new OutputStreamWriter(fos, "GB2312");
: 我不懂怎样读出汉字。

avatar
y*o
5
Core Java lists GB2312.

我要从一个纯文本文件file1.txt中将某些汉字逐个读出,并逐个写入文件file2.txt中




【在 c***r 的大作中提到】
: java用GBK,不用GB2312
:
: 。
: 数
: 来
: ,

avatar
y*o
6
Thank you. So, according to what you say, I need to do:
BufferedReader br = new BufferedReader(isr);
And I don't know how to bound the OutputStreamWriter with System.out.
Any hint?

an
when
我要从一个纯文本文件file1.txt中将某些汉字逐个读出,并逐个写入文件file2.txt中




【在 w********c 的大作中提到】
: what u did should be right. When u take an input, it's always better to add an
: extra decorator BufferedReader to ur Reader so ur data will be in String. when
: u dump it to screen, u should also wrap System.out w/ an encoded
: OutputStreamWriter.
:
: 。
: 数
: 来
: ,

avatar
w*c
7
System.out is a stream too. so just
OutputStreamWriter osw = new OutputStreamWriter(System.out, "GB2312")

add





【在 y********o 的大作中提到】
: Thank you. So, according to what you say, I need to do:
: BufferedReader br = new BufferedReader(isr);
: And I don't know how to bound the OutputStreamWriter with System.out.
: Any hint?
:
: an
: when
: 我要从一个纯文本文件file1.txt中将某些汉字逐个读出,并逐个写入文件file2.txt中
: 个
: 字

avatar
c*r
8
好像应该用EUC_CN来表示GB2312编码吧?我只用过GBK,好像有人用iso8859-2






【在 y********o 的大作中提到】
: Core Java lists GB2312.
:
: 我要从一个纯文本文件file1.txt中将某些汉字逐个读出,并逐个写入文件file2.txt中
: 个
: 字
: 说

avatar
c*r
9
不好意思GB2312没问题,这段代码应该能行
try{
FileInputStream is = new FileInputStream("test.txt");
InputStreamReader oR = new InputStreamReader(is,"GBK");
Writer myout = new OutputStreamWriter(System.out);
myout.write( oR.read());
myout.flush();
}catch(Exception e){}


我要从一个纯文本文件file1.txt中将某些汉字逐个读出,并逐个写入文件file2.txt中




【在 c***r 的大作中提到】
: 好像应该用EUC_CN来表示GB2312编码吧?我只用过GBK,好像有人用iso8859-2
:
: 。
: 一
: 汉
: 方

avatar
y*o
10
Yes, it looks like it works if we do:
myout.write(oR.read());
But it does not seem to work if we do:
char chineseChar = (char)oR.read();
myout.write(chineseChar); // writes a question mark.
Don't know why.


"GB2312");

这个数字应当是file1.txt的第一个汉字“我”了。怎样让它println

【在 c***r 的大作中提到】
: 不好意思GB2312没问题,这段代码应该能行
: try{
: FileInputStream is = new FileInputStream("test.txt");
: InputStreamReader oR = new InputStreamReader(is,"GBK");
: Writer myout = new OutputStreamWriter(System.out);
: myout.write( oR.read());
: myout.flush();
: }catch(Exception e){}
:
: 大

avatar
c*r
11
It works for me. Did you installed a Chinese version of JDK?


我要从一个纯文本文件file1.txt中将某些汉字逐个读出,并逐个写入文件file2.txt中

【在 y********o 的大作中提到】
: Yes, it looks like it works if we do:
: myout.write(oR.read());
: But it does not seem to work if we do:
: char chineseChar = (char)oR.read();
: myout.write(chineseChar); // writes a question mark.
: Don't know why.
:
: 不
: "GB2312");
: 显

avatar
w*g
12
question mark means u lost the code



【在 c***r 的大作中提到】
: It works for me. Did you installed a Chinese version of JDK?
:
: 系
: 我要从一个纯文本文件file1.txt中将某些汉字逐个读出,并逐个写入文件file2.txt中

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。