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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Pytest(11)allure报告「建议收藏」

    Pytest(11)allure报告「建议收藏」前言allure是一个report框架,支持java的Junit/testng等框架,当然也可以支持python的pytest框架,也可以集成到Jenkins上展示高大上的报告界面。mac环境:

    2022年7月29日
    9
  • IO流的分类_io流的作用

    IO流的分类_io流的作用IO流的分类可以分为以下三种:第一种:输入流和输出流按照流的流向来分,可以分为输入流和输出流。输入,输出都是从程序运行所在内存的角度来划分的。输入流:只能从中读取数据,而不能向其写入数据,由InputStream和Reader作为基类。输出流:只能向其写入数据,而不能从中读取数据。由OutputStream和Writer作为基类第二种:字节流和字符流字节流和字符流的用法几乎完全一样,区…

    2022年10月20日
    2
  • UEFI安装win10+manjaro双系统

    UEFI安装win10+manjaro双系统前期准备win10下载ISO:manjaro下载制作启动盘(win10)制作启动盘(manjaro)BIOS设置安装UEFI+GPT安装win10安装win10安装manjaro前期准备win10下载ISO:微软官方Windows10ISO直接下载网页:https://www.microsoft.com/zh-cn/software-down…

    2022年6月25日
    46
  • 基于树莓派的语音识别和语音合成

    基于树莓派的语音识别和语音合成基于树莓派的语音识别和语音合成摘要语音识别技术即AutomaticSpeechRecognition(简称ASR),是指将人说话的语音信号转换为可被计算机程序所识别的信息,从而识别说话人的语音指令及文字内容的技术。目前语音识别被广泛的应用于客服质检,导航,智能家居等领域。树莓派自问世以来,受众多计算机发烧友和创客的追捧,曾经一“派”难求。别看其外表“娇小”,内“心”却很强大,视频、音频等功…

    2022年6月26日
    55
  • html中table样式_html中table的用法

    html中table样式_html中table的用法转自:http://atgoingguoat.iteye.com/blog/2074431常用table样式,备自己常年复制用。 效果图   Java代码  “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml

    2022年9月20日
    3
  • Linux-dosbox使用「建议收藏」

    2019独角兽企业重金招聘Python工程师标准>>>…

    2022年4月9日
    139

发表回复

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

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