y********o 发帖数: 2565 | 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出汉 |
F****n 发帖数: 3271 | 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"); : 我不懂怎样读出汉字。
|
w********c 发帖数: 2632 | 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"); : 我不懂怎样读出汉字。
|
c***r 发帖数: 4631 | 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"); : 我不懂怎样读出汉字。
|
y********o 发帖数: 2565 | 5 Core Java lists GB2312.
我要从一个纯文本文件file1.txt中将某些汉字逐个读出,并逐个写入文件file2.txt中
个
字
说
【在 c***r 的大作中提到】 : java用GBK,不用GB2312 : : 。 : 数 : 来 : ,
|
y********o 发帖数: 2565 | 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. : : 。 : 数 : 来 : ,
|
w********c 发帖数: 2632 | 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中 : 个 : 字
|
c***r 发帖数: 4631 | 8 好像应该用EUC_CN来表示GB2312编码吧?我只用过GBK,好像有人用iso8859-2
。
一
汉
方
【在 y********o 的大作中提到】 : Core Java lists GB2312. : : 我要从一个纯文本文件file1.txt中将某些汉字逐个读出,并逐个写入文件file2.txt中 : 个 : 字 : 说
|
c***r 发帖数: 4631 | 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 : : 。 : 一 : 汉 : 方
|
y********o 发帖数: 2565 | 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){} : : 大
|
c***r 发帖数: 4631 | 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"); : 显
|
w******g 发帖数: 67 | 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中
|