OutputStreamWriter 是字符流通向字节流的桥梁:使用指定的 charset 将要向其写入的字符编码为字节。
可我编写的以下代码为什么输出的是字符,而不是字节呢?
import java.io.*;
public class Read {
public static void main(String[] args) throws IOException {
String str= "";
BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter stdout = new BufferedWriter(new OutputStreamWriter(System.out));
stdout.write("请输入:");
stdout.flush();
str = stdin.readLine();
stdout.write("这是从用户输入的串:"+str);
stdout.write(str);
stdout.flush();
}
}
运行结果:
请输入:中国
这是从用户输入的串:中国
为什么输出的不是字节???
可我编写的以下代码为什么输出的是字符,而不是字节呢?
import java.io.*;
public class Read {
public static void main(String[] args) throws IOException {
String str= "";
BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter stdout = new BufferedWriter(new OutputStreamWriter(System.out));
stdout.write("请输入:");
stdout.flush();
str = stdin.readLine();
stdout.write("这是从用户输入的串:"+str);
stdout.write(str);
stdout.flush();
}
}
运行结果:
请输入:中国
这是从用户输入的串:中国
为什么输出的不是字节???
解决方案 »
- 一个jsp页面多个Ec:table问题,在线等!问题解决马上结贴!
- 求一个菜鸟级的问题,谢了!
- 如何实现这个多线程编程的问题.
- 一个关于连续赋值的问题
- 怎样在TextArea实现滚屏的效果??给分30分哦!
- 看了jdk源码中Thread的join方法,我有点迷惘......
- 初学java,将一个类中的数据,传到另一个中,但是老是提示错误,我是基本照着书抄的啊,求救各位大神
- 问题:关于插入一条记录 在线等待
- ????再次请教::想用JAVAMAIL发送一个带有附件的多媒体邮件(即:邮件正文是HTML,并随信有附件),怎样形成邮件的信体部分??
- 学完基础之后的我接下来学什么好
- 这是什么原因???
- SWT 取画布中某点的颜色
2、BufferedWriter stdout = new BufferedWriter(new OutputStreamWriter(System.out),"UTF-8");
这样试试。
同理
InputStreamReader 是InputSteam转为Reader的意思.
public class Read {
public static void main(String[] args) throws IOException {
String str= "";
BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter stdout = new BufferedWriter(new OutputStreamWriter(System.out));
stdout.write("请输入:");
stdout.flush();
str = stdin.readLine();
stdout.write("这是从用户输入的串:"+str.getBytes("UTF-8"));
stdout.flush();
}
}
这句话我是直接从JDK api文档里直接复制过来的,不信,你可以亲自去查看JDK文档。如果说"是字节流通向字符流的桥梁"
那我就没必要来这儿发问了。
这句话也是JDK文档里的原话,这个我倒是明白。
不过还是谢谢bigbug9002的回复
你这么做那不等于强制转换为了"UTF-8"编码,然后才输出吗?