java i o流_java的I/O流--个人总结(上)

java的I/O流--个人总结(上)怎么又回过头来看I/O流操作呢?温故知新嘛,况且以后我的研究方向都会涉及带内存和多线程的操作,I/O与这些太有关联了!其实我写这个的个人总结的初衷并不是这样,是在学习Struts2的文件上传和下载操作时遇到了一些小问题。

一下是我的'个人总结:

f55b8697a427bb8843a674494f91e62f.png

java.io.包内的类真是太多了,简直是排山倒海!但是其中许多类都是装饰类,采用的装饰着模式。所以我们一定要熟悉各种类之间的层次结构!

java.io.File类:这是对文件本身进行操作的构造方法:public File(String pathname)

创建文件对象的方法:f对象.createNewFile()其返回值是一个boolean值

还有其他一些常用方法:f.delete(),f.mkdir().

其中全局常量pathSeparator的路径分隔符,显示了java的可移植性强大的特点

2.RandomAccessFile类对文件内容进行操作的随机读取类

构造方法:public RandomAcessFile(文件对象模式)会抛出异常

3.字节流

字节流有OutputStream和InPutStream,但是他们都是抽象类,必须通过子类开实例化对象,然后对byte数组进行操作。如实操作文件,可以使用其子类FileOutPutStream类,通过向上转型,可以为OutPutStream实例化。

方法有:OutPutStream的对象.write(byte|b单个字节)写入到输出流中去;InputStream的方法和OutPutStream是一样的对象.read(|byte)将对象InputStream流中的数据读进数组,或者返回一个int值是否读完。要强调的是最后都要close()关闭字节流!

4.字符流

1个字符是2字节是2Byte其单位是大于字节流的字符输出流Writer和字符输入流Reader,他们的操作基本和字节流类似的

但是区别是:字节流操作不会使用到缓冲区(内存),而字符流操作需要使用!

5.转换流

OutputStreamWrite(Writer的子类):xxxx--字符流--字节流

InputStreamReader(Reader的子类):文件--字节流--字符流

6.内存操作流

以上讲解的程序中的输出和输入都是从文件中来的,当然也可以将输入的位置设置在内存上

使用ByteArrayStreamInputStream,ByteArrayOutPutStream完成输入输出。和字节流字符流一样,操作对象都可以看成是Stream流。

构造方法ByteArrayInputStream(byte buf)只使用构造方法将内容读取到内存中去

构造方法ByteArrayOutPutStream()创建对象,将内容写入bos流中:bos.write(int b)

bos.write(bis.read()):以bis读出再写入bos中。然后str=bos.toString 7.管道流

PipedOutputStream和PipeIntputStream使用时,还要使用Connect()方法将两个流连接起来。

pos.connect(pis);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值