Java instream

File, 封装了文件名,只是一个名字,是内存里面的一个对象,

真正的文件,是硬盘上的一快存储空间

不等于-1就等于,文件还没有到结尾。

.read()!=-1 读到结尾就等于-1,读完了

一个管道队到数据源上,准备开始读数据。

一个管道对到一个文件上,准备开始读数据

instream, 是每次读一个字节(8位)

reader/writer是每次读写一个字符(一个字符2个字节16位,可以读一个中文字符出来)

FileOutPutStream("c:/shar")当你没有这个文件的时候,FileOutPutStream 会自动帮你建一个

管道用完了,要关闭

输入 输出流 是对程序来说输入还是输出。输入到 为你这个程序分配的内存区域里面去了。

stream 每次读一个字节,reader,writer每次读一个字符, 你需要定义一个变量接收读出来的每一个字节,或是字符。然后程序运行时会放到变量所在的内存区域中

reader read writer write  一个动词,是方法,一个名词是类名

如果要想将一个类的对象按照字节序列存盘,你就需要实现可序列化的接口,serializable是一个空 的接口,里面没有定义任何方法,他给类打一个标记给编译器看的,类可以被序列化。

把类的对象往磁盘里面的写的时候不会出错。可以直接用ObjectOutputstream 类对象的方法writeObject方法直接写进去一个对象,取出来的时候 是当做object类型取出来的,需要进行强转换

 

Serialzable 接口,标记接口标记一下,类的对象可以被序列化

一个管道堆到数据源上

输入流、输出流  : 对程序来说,输入输出

字节流,字符流  : 一下子读一个字符,一下子读一个字节, 读时候需要放到循环里面,写的时候也可能需要放到循环里面

节点流,处理流 : 外面包一个管子,提供更多的遍历的读方法,写方法

对内存中的字节数组进行读写 ByteArrayInputStream/OutputScream

ByteArrayInputStream :从一个字节数组中读数据到程序,程序中可以定义一个变量来接收他的参数。 构造管道的时候 需要传递一个参数是字节数组,可以把ByteArrayOutputStream 的对象即那个管道 调用 toByteArray()方法。

ByteArrayOutputStream :new一个类的对象时,是无参数的,内存中会new一个 变长的字节数组,并且一个管道堆到这个数组上,你在外面包一个处理流DataInputStream或者不包,d.writeBoolean,writeDouble 就向 字节数组中写数据了。

inputstream/outputstream,

reader/writer 都是抽象类

FileInputScream FileOutputStream 对文件的输入输出,fileOutputStream 类的构造方法,可以有一个参数true表示 向文件追加

FileReader fileWriter

Bufferedinputstream bufferedOutputStream

BufferedReader BufferedWriter bufferedReader 是一个小桶,可以一下子读一行出来readline(), 还可以向文件中写一个换行,newLine() 

inputStreamReader/outputStreamwriter 转换流

pringStream/printwriter  套在其他流外面,可以打印多种数据类型的数据,当然内部调用的是其他类型的toString 方法

ObjectinputStream ObjectoutputStream(transient 透明的,serializable,externalizable自己可以控制对象怎么序列化)

可以直接读写一个Object ,但是这个类必须实现Serializable 接口, 将这个对象 转黄成字节序列存到磁盘文件上或者哪里,再读出来,进行强制类型转换(因为读出来的时候是按照Object类型拿出来的)

DateinputSream/DateoutputStream 直接读写基础的 数据类型.还可以写unicode字符串,utf8 比utf16 省空间,但是必须按照存入的顺序读出来

线程的调用,必须调用线程的start方法

 先new 一个新的线程, 然后调用对象的start方法, 定义新的线程的时候必须传递一个对象,这个类的对象必须实现了runnable 接口中的run方法。

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值