Java——流

Java——流

目录:

1.java流式输入输出原理

2.输入输出流的分类

3.缓冲流:BufferedWriter

4.转换流:InputStreamWrite

5.数据流:DataInputStream

6.Print流:PrintWriter

7.Object流(序列化):serializable接口

 

 

1.java流式输入输出原理

 

2.输入输出流的分类

按数据流的方向:输入流、输出流

按处理数据单位不同:字节流、字符流

按功能不同:节点流、处理流

 

InputStream的基本方法:

int read() throws IOException:

int read(byte [] buffer) throws IOException:

void close()  throws IOException:

 

OutputStream的基本方法:

void write() throws IOException:

void write(byte [] buffer) throws IOException:

void flush()  throws IOException:

void close()  throws IOException:在之前必写flush

 

Reader的基本方法(每次读两字节,即char):

和InputSteam对照相似

 

Writer的基本方法:

void wirte(String string)  throws IOException:

其余对照OutputStream

 

3.缓冲流:

对数据读写提供了缓冲的功能,提高了读写的效率。

BufferedInputStream:带缓冲区,相当于在普通读中套上了另一层管道进行缓冲处理。

bis.readLine():可以直接用来读取一行

FileInputStream fis=new FileInputStream("d:\\share\\HelloWorld.java");

BufferedInputStream bis=new BufferedInputStream(fis);

 

4.转换流:InputStreamWrite

可以把字节流转换成字符流,即可以使用InputStreamWriter包装InputStream,则可以直接写入字符串,即write(“qqqqq”)

InputStreamWriter就是把InputStream转化成Writer。

isw.getEncoding():获取编码方式

 

5.数据流:DataInputStream

DataInputStream用于读取java基本的数据类型。

用法writeFloat(float)、

readLong()等等。

ByteArrayOutputStream:在内存中申请一块空间进行读写,可用Data…包装。

 

6.Print流:

PrintWriter和PrintStream

特点:①重载了print和println。②不会抛出异常。③有自动flush功能。

FileWriter fw=new FileWriter("d:\\logfile.log",true);//true表示往文件后面添加内容,不覆盖

PrintWriter pw=new PrintWriter(fw);

pw.println("*****");//将****写入log文件

 

7.Object流(序列化):

直接将Object写入或读出。

transient关键字:类中被transient修饰的对象,不予考虑,即置为null或0读入。

serializable接口(序列化):标记性接口。译为“可被序列化的”,“标记”是给编译器看的,编译器看到就知道实现了此接口的类是可被序列化的。

T t=new T();//T类必须已经实现了Serializable接口,类中被transient修饰的对象,不予考虑,即置为null或0读入
t.k=8;
FileOutputStream fos=new FileOutputStream("d:\\test.dat");

ObjectOutputStream oos=new ObjectOutputStream(fos);//用Object..包装管道

oos.writeObject(t);

oos.flush();

oos.close();
//读时同理

//先写两个管道

T tRead=(T)ois=new ObjectInputStream(fis);
System.out.println("tread.k");

enternalizable接口(外部化):实现了本接口,可以自己实现序列化,而不是直接使用系统默认序列化。

 

转载于:https://my.oschina.net/u/3786691/blog/1785231

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/101744.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 服务器文件句柄数_Linux文件句柄机制

    服务器文件句柄数_Linux文件句柄机制设置文件句柄在配置我们的RedHatLinux服务器时,确保文件句柄的最大数量足够大是非常关键的。文件句柄设置表示您在Linux系统中可以打开的文件数量。使用以下命令来确定整个系统中文件句柄的最大数量:#cat/proc/sys/fs/file-max32768Oracle建议将整个系统的文件句柄值至少设置为65536。通过直接更改/proc文件系统,您可以不必重新启动机…

    2022年10月18日
  • Java操作XML文件

    Java操作XML文件目录一、使用DOM4j进行XML的DOM解析1.1、使用DOM4j查询XML文档1.2、使用DOM4j修改XML文档1.3、使用xPath技术二、使用SAX方式解析XML文档2.1、使用SAX解析方式查询XML文档2.2、对比DOM解析和SAX解析Java中有两种解析XML文件的方式:DOM解析和SAX解析。一、使用DOM4j进行XML的DOM解析…

  • poj3984迷宫问题_迷宫代码

    poj3984迷宫问题_迷宫代码POJ 3984 迷宫问题

  • js 数组插入删除[通俗易懂]

    js 数组插入删除[通俗易懂]常用的方法是遍历数组,然后使用splice()删除这里我们使用es6中findIndex()查找,然后删除functiondeleteFromArray(arr,compare){constindex=arr.findIndex(compare)if(index>-1){arr.splice(index,1)}}插入数据functioninsertArray(arr,val,compare,maxLen){//返回位置consti

  • SQL NOT NULL 约束[通俗易懂]

    SQL NOT NULL 约束[通俗易懂]SQLNOTNULL约束在默认的情况下,表的列接受NULL值。SQLNOTNULL约束NOTNULL约束强制列不接受NULL值。NOTNULL约束强制字段始终包含值。这意味着,如果不向字段添加值,就无法插入新记录或者更新记录。下面的SQL强制“P_Id”列和“LastName”列不接受NULL值:CREATETABLEPersons(…

  • 异步fifo设计注意事项有哪些(陈设设计)

    近日学习用到异步FIFO,故写下这篇博客记录学习心得。在我看来,异步FIFO的设计注意事项大体分为两点:亚稳态的处理空满状态的判断第一,来说一下亚稳态。亚稳态是指触发器无法在某个规定时间内达到一个可确认的状态。在FIFO的设计中,产生的原因主要由两点:一是逻辑电平的误判,也就是如果通过二进制作为指针来判断空满状态,因二进制数值变化引起的位数变化大,对电路的危害也随之增加,故在本设计中使…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号