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

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 周星驰算巨星吗_国际巨星女明星

    周星驰算巨星吗_国际巨星女明星4月1日,国际著名的技术先锋人物、领先的反病毒厂商卡巴斯基实验室的创始人&CEO尤金•卡巴斯基与巨星成龙一起,在北京奥运会中的标志性建筑“鸟巢”,举办了“卡巴斯基诚献-‘龙的传人’成龙和他的朋友们2009北京大型演唱会”的媒体见面会。在现场,尤金•卡巴斯基与成龙共同宣布,“卡巴斯基诚献-龙的传人-成龙和他的朋友们北京演唱会”将在一个月之后,也就是五月黄金周在“鸟巢”盛大开唱。这是卡巴…

    2022年8月20日
    6
  • fastjson把map转json_fastjson转list对象

    fastjson把map转json_fastjson转list对象Stringtest=”jdkalkjda|||djkdla|||djlak”;Stringstr[]=test.split(“\\|\\|\\|”);System.out.println(str.length);HashMapt=newHashMap();HashMapt1=newHashMap();t1.put(“k”,”3″);Objects1=JSONObj…

    2022年10月4日
    0
  • ES[7.6.x]学习笔记(七)IK中文分词器

    ES[7.6.x]学习笔记(七)IK中文分词器

    2020年11月14日
    188
  • freemarker 加载远程模板「建议收藏」

    freemarker 加载远程模板「建议收藏」freemarker 加载远程模板

    2022年4月20日
    80
  • 浅析AnyCast网络技术「建议收藏」

    浅析AnyCast网络技术「建议收藏」什么是BGPAnyCast?BGPanycast就是利用一个(多个)as号码在不同的地区广播相同的一个ip段。利用bgp的寻路原则,短的aspath会选成最优路径(bgp寻路原则之n),从而优化了访问速度。其实bgpanycast是不同服务器用了相同的ip地址。阿里的DNS就是使用了BGPAnyCast“其实bgpanycast是不同服务器用了相同的ip地址。”言简意赅啊!D…

    2022年5月24日
    46
  • oracle 11g安装教程_暖气片安装方法图解

    oracle 11g安装教程_暖气片安装方法图解Oracle11G安装图解标签(空格分隔):oracleOracle介绍  OracleDatabase,又名OracleRDBMS,或简称Oracle是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的

    2022年9月21日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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