JAVA IO 的一个问题

作者&投稿:凌宰 (若有异议请与网页底部的电邮联系)
一个java中io问题~

System.out.println(buf[i]);这句话改成System.out.println((char)buf[i]);就好了

byte是一个8位的整数
char才是2字节(16位)字符

这里面只讲一下OutputStream以及System.out。in的一样的道理。
OutputStream是一个抽象类,而System.out是一个PrintStream的对象。
out为System的一个final属性,在jvm启动的时候会自动执行,创建一个PrintStream对象并赋值给System的out属性。由于PrintStream是OutputStream的子类,因此out也就为OutputStream的实例化对象。这个是面向对象的一个特点。

你键盘上输入A,假设程序里面是用BufferedReader包装过System.in,并且你是用read(byte[] buff)去读取的,那么A就会分解成byte然后进入输入流,读入的是'A'并且返回1(长度),如果你是用readLine()方法的,那么BufferedReader会在等到回车以前一直缓存'A'。。。这些东西,当读到回车以后就把以前读的一起返回成一个字符串,然后清空buff

文件的话和键盘没有太大区别,如果你直接用FileReader的话,只能用read方法,那么看你read的是什么,比方你read char[]那就以char的方式进入流,如果你read byte的话就以byte的方式进入流,不过一般还是会用BufferedReader包装一下,这样比较方便

流这个概念是指当程序中需要一个数据时,就会有一个寻找数据源的过程,即是谁来提供数据,也许是程序,文件,内存,或是通过网络接口,这样你就可以把这个过程想象成一个像水管一样的东西,提供一个管道,把数据从数据源处流入到我们的程序中,想想你家里的供水系统,是同一个意思。
而JAVA中的流有两种,一种叫字节流(inputstream,outputstream),一种叫字符流(reader,writer).
而inputsteam的来源又可以从:
文件:fileinputstream
另一个对象:objectinputstream
等等方式,这些可以查看JDK。

而你所说的不是流,是计算机内部编码方式,处理原理,这个和流基本没太大关系。

貌似是如此


鹿城区13052542789: java 关于IO流的一个问题.. -
闻别山麦: 确实很蛋疼…… 可以在存对象之前,先存入一个代表对象个数的int值 读取的时候,先读这个int值,再读对象

鹿城区13052542789: 大家看一下,一个java的io问题,遍历指定文件夹下的所有子文件夹 -
闻别山麦: import java.io.File ; import java.io.IOException ; public class FileDemo11{ public static void main(String args[]){ File my = new File("d:" + File.separator) ;// 操作路径,可以有外部参数决定的 print(my) ; } public static void print(File file){// 递归调用...

鹿城区13052542789: 一个关于java IO的简单问题
闻别山麦: 你这里写的是一个死循环来的, 输入会一直被等待着,words这个字串会不断加长... 也就是你每次输入完一句回车后,又等待你下一次的输入,不会停的. 你把print的语句放入while里面就可以打印了.

鹿城区13052542789: Java IO的一个奇怪问题 高手请指点
闻别山麦: student的name字段是15长度的string,就是15个char,占30个byte,score字段是int,占4个byte,总计34个byte,所以student的size必须是34,因为RandomFileAccess的seek方法是按byte来位移position的.所以你要读取一个完整的student时必须一下位移34个byte.小于34时会把score数字当char读出来,就是乱码了,大于34的话就有可能超出文件尾部,就是io异常了.

鹿城区13052542789: JAVA IO 问题 -
闻别山麦: 这里面只讲一下OutputStream以及System.out.in的一样的道理.OutputStream是一个抽象类,而System.out是一个PrintStream的对象.out为System的一个final属性,在jvm启动的时候会自动执行,创建一个P...

鹿城区13052542789: 关于java使用io流读写文件的一个问题 -
闻别山麦: os.write(b, 0, len); 这句后b不会被清空的 每次执行is.read(b) 的时候数组b的元素会被覆盖.

鹿城区13052542789: javaio简单小问题求解
闻别山麦: 让我来告诉你答案!作用域的问题如果写在try里面的话FileInputStreamin就只在try{}括号内有效,所以在try外面初始化FileInputStreamin

鹿城区13052542789: java中关于io流的问题 -
闻别山麦: 几种可能的异常(IOException的一些子类,这些是有关文件读写方面可能抛出的异常,还可能有其他方面异常,参考JDK API文档的IOException类的子类) 总体说有:文件不存在,读取写入出错(如磁盘硬件错误、写保护、无空间等),权限...

鹿城区13052542789: 怎样解决java.io.IOException:问题 -
闻别山麦: 你看看是哪个方法抛异常了.放到try块里:try{}catchIOException e){},就正常运行了

鹿城区13052542789: java io 问题
闻别山麦: 抛出的是IOException异常,可以再类后面直接用throws IOException,也可以 try{while((s = raf.readUTF()) != null )} catch(IOException e) {e.printStackTrance(); } 异常都这样抛出

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网