当前位置: 技术问答>java相关
我真的对CSDN快失望了,怎么回事,这种问题我已经花了120分了
来源: 互联网 发布时间:2015-03-04
本文导语: 在JAVA中用输入输出一直是用java.io中的DataInputStream PrintStream流,用readLine方法读其中的内容,如有多行就在读出后加'rn',但这个readLine读英文没问题,读中文就完蛋了,我就搞不清是DataInputStream根本就不支持中文还是rea...
在JAVA中用输入输出一直是用java.io中的DataInputStream PrintStream流,用readLine方法读其中的内容,如有多行就在读出后加'rn',但这个readLine读英文没问题,读中文就完蛋了,我就搞不清是DataInputStream根本就不支持中文还是readLine这个方法有问题,thinking in java中带有读写文件的例子,但都是readLine方法的,读中文有问题,那么有没有什么类(java1.1)中取代DataInputStream或readLine方法的,如果可以读中文字符的源代码参考一下更好了。谢谢!
|
import java.io.*;
public class Echo {
public static void main(String[] args) {
DataInputStream in =
new DataInputStream(
new BufferedInputStream(System.in));
String s;
try {
while((s = in.readLine()).length() != 0)
System.out.println(Echo.makecn(s));
// An empty line terminates the program
} catch(IOException e) {
e.printStackTrace();
}
}
public static String makecn(String cn_string)
{
String temp = null;
try
{
temp = new String(cn_string.getBytes("ISO8859_1"), "GB2312");
}
catch(Exception exception) { }
return temp;
}
} ///:~
public class Echo {
public static void main(String[] args) {
DataInputStream in =
new DataInputStream(
new BufferedInputStream(System.in));
String s;
try {
while((s = in.readLine()).length() != 0)
System.out.println(Echo.makecn(s));
// An empty line terminates the program
} catch(IOException e) {
e.printStackTrace();
}
}
public static String makecn(String cn_string)
{
String temp = null;
try
{
temp = new String(cn_string.getBytes("ISO8859_1"), "GB2312");
}
catch(Exception exception) { }
return temp;
}
} ///:~
|
use
Reader r = new BufferedReader(new InputStreamReader(InputStream,encoding));
Reader r = new BufferedReader(new InputStreamReader(InputStream,encoding));
|
你好:
首先:初始化一个InputStream,然后调用里面的一个方法(忘了),得到有几个byte.
然后:初始化一个byte array ,用来存放InputStream 里面的bytes.
接着:调用InputStream 里面的一个方法,按一个一个字节写入byte array .
最后:用一个String什么的吧byte array 连接起来。
好了,我的测试代码不在身边,应该没有问题的,你自己试试看吧。
呵呵
首先:初始化一个InputStream,然后调用里面的一个方法(忘了),得到有几个byte.
然后:初始化一个byte array ,用来存放InputStream 里面的bytes.
接着:调用InputStream 里面的一个方法,按一个一个字节写入byte array .
最后:用一个String什么的吧byte array 连接起来。
好了,我的测试代码不在身边,应该没有问题的,你自己试试看吧。
呵呵