首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

关于OutputStream类型的write方法,该如何解决

2012-01-07 
关于OutputStream类型的write方法Java code功能描述:从键盘输入一串字符,直到输入回车符结束,然后从屏幕输

关于OutputStream类型的write方法

Java code
功能描述:从键盘输入一串字符,直到输入回车符结束,然后从屏幕输出并将其存入a.txt文件中。输入使用System.in.read();输出使用System.out.write();    public static void main(String[] args){        int ch;        try {            FileOutputStream fos = new FileOutputStream("a.txt");            System.out.print("请输入(回车符结束):");            while((ch=System.in.read())!='\n'){//下面这两行为什么ch明明是int类型的数据,控制台和a.txt中可以显示输入的字符和汉字?                System.out.write(ch);                fos.write(ch);            }//还有下面这行代码中write的参数不应该是int类型的吗,怎么可以写回车?            System.out.write('\n');            System.out.println("输出到文件完毕,请查收!");        }catch (IOException e) {            System.out.println(e.toString());        }        }


[解决办法]
Java code
import java.io.*;public class Demo1 {    public static void main(String[] args){        int ch;        try {            FileOutputStream fos = new FileOutputStream("a.txt");            System.out.print("请输入(回车符结束):");            while((ch=System.in.read())!='\n'){//下面这两行为什么ch明明是int类型的数据,控制台和a.txt中可以显示输入的字符和汉字?//控制台和文本文件会自动将数值安装编码表如(UTF8编码)转换为字符显示//文本文件默认就是这样转换为字符显示,也可以用16进制查看,其存储的值一样                System.out.write(ch);                fos.write(ch);            }//还有下面这行代码中write的参数不应该是int类型的吗,怎么可以写回车?//编译器将System.out.write('\n')自动转换为字符char='\n'的int值处理            System.out.write('\n');            System.out.println("输出到文件完毕,请查收!");        }catch (IOException e) {            System.out.println(e.toString());        }    }} 

热点排行