精彩牛耳,用心缔造

Java开发大角色之IO流

作者: 编辑: 来源: 发布日期: 2019.01.08
信息摘要:
Java开发的中的IO流应用是比较广泛的,有专门用来处理字符串文本的字符流,有专门用来传输视频图片等新媒体资料的字节流,我们今天就来好好研究…

Java开发的中的IO流应用是比较广泛的,有专门用来处理字符串文本的字符流,有专门用来传输视频图片等新媒体资料的字节流,我们今天就来好好研究下IO.


什么是IO流?

IO流简单来说就是Input和Output,流是指一连串流动的字符,是以先进先出方式发送信息的通道,流主要是用来处理设备之间的数据传输,

Java对于数据的操作都是通过流实现,而java用于操作流的对象都在IO包中,

根据流动方向:输入流和输出流(参照物:程序本身)

根据传输格式:字节流和字符流

字符流只用来处理文本数据,字节流用来处理媒体数据


IO体系结构?

字节流应用

FileInputStream

文件输入流,继承于InputStream类,是进行文件读操作的最基本类

作用:调用read()读文件   把硬盘中的文件读取到内存

案例:  File file = new File("readme.txt");

try {

// 使用File对象创建文件输入流对象,相当于打开文件

FileInputStream fis = new FileInputStream(file);

// 新建字节数组作为缓冲区

byte[] b = new byte[(int) file.length()];

// 读取文件内容到缓冲区

fis.read(b);

// 把字节数组重新构造成字符串,然后输出到控制台

System.out.println(new String(b));

// 关闭文件输入流

fis.close();

FileOutputStream

称为文件输出流,继承于OutputStream类,是进行文件写操作的最基本类;

作用:调用write()写文件  把内存中的文件读取到硬盘中来


案例: //通过文件名创建文件输出流对象

FileOutputStream fos = new FileOutputStream("test.txt");

//将字符串转化为字节数组

byte[] buffer = str.getBytes();

//将字节数组中包含的数据一次性写入到文件中

fos.write(buffer);

//关闭流

fos.close();


字节流实用案例完成文件的复制:

字符流应用

FileReader类和FileWriter类;   文件读取流 / 文件写入流

BufferedReader类和BufferedWriter类  缓冲读取流 / 缓冲写入流

注意:一般为了提高效率 字符流都搭配缓冲流一起使用


BufferedReader类方法:

String readLine():从缓冲流中读取一行


BufferedWriter类方法:

void write(String str):将字符创str写入到缓冲流去

void newLine()  :  换行

void flush()  : 刷新缓冲流的数据


字符流应用实例完成指定文件中各个字符出现的次数:

牛耳推荐资讯
IT学子们请像高考冲刺那样,圆我们的IT梦

IT学子们请像高考冲刺那样,圆我们的IT梦

还记得当年高考前教室后面的标语吗?还记得模拟考成绩出来后的悲与欢吗?还记得那最后100天我们内心的充实吗?然而随着大学生活的流式,那些埋藏在我们内心深处的美好记忆也随之消逝。各位IT专业的学子们,你们是否也是满怀期待的选择计算机专业,是否也是因为学电脑很有前途,因为现在IT行业发展火爆?确实T行业需要......
2020-01-06
长沙IT培训---计算机系实习的我们该何去何从

长沙IT培训---计算机系实习的我们该何去何从

又是一年实习季,到了这个时候就想起了当年的小编自己,没有其他词语比迷茫着两个字更加能代表自己的心情了。随着互联网经济的不断发展,IT技术也随之不断的更新、更迭,IT行业俨然成为了21世纪最火的行业之一。但是不是学计算机的人又哪懂我们计算机系的苦呢?从入学到毕业我们大大小小有七八个方向可以选择,有时候......
2020-01-06
长沙IT培训---其实转行就那么简单

长沙IT培训---其实转行就那么简单

最近我看到了一篇文章,文章的内容是关于华为公司大规模裁员的,大概的意是说,华为公司宁愿冒着赔偿10亿的风险,也要开除公司内部的7000多名“闲职”人员。看了这篇文章之后,我的感受颇深,文章有一句话很犀利:“时代抛弃你,从来都不会打招呼”,我觉得我需要正视下自己了,觉得必须要保持持续学习的习惯,否则说......
2020-01-06

咨询热线

400-0731-162
  
    • *

    • *