一.分类

  • 字节流(不适用于文本)
  1. InputStream
  2. OutputStream
  • 字符流
  1. Reader
  2. Writer

 二.字节流

  1.概述

      InputStream

      字节输入流,是被读的,抽象类,不能创建对象

        FileInputStream:针对文件数据操作

        DataInputSream:转换流,可传基本数据类型

        BufferedInputStream:缓冲流,常用

        ObjectInputStream:对象流

   OutputStream

      字节输出流,是被写的,抽象类,不能创建对象

        PrintStream:单向的输出流

  2.字节流----文件流

   文件流FileInputStream,字节流不适合文本(原因是10个字节为单位读),但适合图片

//1.创建对象
FileInputStream fis = new FileInputStream("src/test.txt"); //2.读文件,一个字节一个字节读
int n=fis.read();
System.out.println((byte)n);
n = fis.read();
System.out.println((byte)n);
n = fis.read();
System.out.println((byte)n); //3.读文件,一次读取多个字节
byte []by=new byte[1024];
int m=fis.read(by);//将读取的字节内容保存在buf数组 返回的是读取的字节数
System.out.println(m); //4.是流,所以再次读取时读不到数据,返回-1
m=fis.read(by);
System.out.println(m); //5.完整读取一个文本
byte []buf=new byte[10];//10个字节为单位读取。
int len=-1;
while((len=fis.read(buf))!=-1){
String result =new String(buf,0,len);
System.out.print(result);
}
fis.close();

      文件流的小练习:把图片复制到桌面

//1.找到源和目标位置
FileInputStream fis=new FileInputStream("图片原目录");
FileOutputStream fos=new FileOutputStream("桌面目录"); //2.读取文件媒介
byte []buf=new byte[1024];
int len=-1; //3.读取并写入文件
while((len=fis.read(buf)) != -1) {
fos.write(buf, 0, len);
} //4.写入后重要的步骤
fos.flush();
fos.close();
fis.close();

   文件流的小练习2:写入东西到txt文件

//文件字节输出流,创建对象并写入txt文档
//1.创建对象,追加或者覆盖
FileOutputStream fos=new FileOutStream("src/test.txt",true);
FileOutputStream fos=new FileOutStream("src/test.txt"); //2.写入
fos.write(97);//写入a
fos.write("你好".getByte());//将字符串转化为字节数组 //3.收尾
fos.flush();
fos.close();

  3.字节流-----缓冲流

    具有缓冲区,减少对硬盘的读写次数,在这里首先接触到装饰者模式,以后还会遇到更多

  • 写入缓冲字节流
//1.创建缓冲输出流  装饰者模式 设计模式
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("src/buffer.txt")); bos.write("你好,我这里使用了缓冲流进行写入内容!!".getBytes());
bos.flush();
bos.close();
  • 读取缓冲字节流
//2.创建缓冲输入流
BufferedInputStream bis = new BufferedInputStream(new FileInputStream("src/buffer.txt"));
byte[] buf = new byte[1024];
int len = -1;
while((len=bis.read(buf)) != -1 ) {
System.out.print(new String(buf, 0, len));
}
bis.close();

1(2)IO流---字节流的更多相关文章

  1. JAVA之IO流(字节流)

    输入和输出 JAVA的流分为输入流和输出流两部分, 输入流:InputStream或者Reader:从文件中读到程序中: 输出流:OutputStream或者Writer:从程序中输出到文件中: Re ...

  2. IO流(字节流,字符流,缓冲流)

    一:IO流的分类(组织架构) 根据处理数据类型的不同分为:字节流和字符流 根据数据流向不同分为:输入流和输出流   这么庞大的体系里面,常用的就那么几个,我们把它们抽取出来,如下图:   二:字符字节 ...

  3. Java之IO流(字节流,字符流)

    IO流和Properties IO流 IO流是指计算机与外部世界或者一个程序与计算机的其余部分的之间的接口.它对于任何计算机系统都非常关键, 因而所有 I/O 的主体实际上是内置在操作系统中的.单独的 ...

  4. Java IO流-字节流

    2017-11-05 17:48:17 Java中的IO流按数据类型分类分为两种,一是字节流,二是字符流.字符流的出现是为了简化文本数据的读入和写出操作. 如果操作的文件是文本文件,那么使用字符流会大 ...

  5. Java—IO流 字节流

    IO流(输入流.输出流),又分为字节流.字符流. 流是磁盘或其它外围设备中存储的数据的源点或终点. 输入流:程序从输入流读取数据源.数据源包括外界(键盘.文件.网络…),即是将数据源读入到程序的通信通 ...

  6. IO流——字节流、字符流

    在程序中所有的数据都是以流的方式进行传输或保存的,程序需要数据的时候要使用输入流读取数据,而当程序需要将一些数据保存起来的时候,就要使用输出流完成. 流的分类 ①   流按其流向分为“输入流”和“输出 ...

  7. JAVA基础——IO流字节流

    在Java中把不同的输入输出源(键盘.文件.网路连接)抽象表述为“流”. 1.输入流.输出流 .字节输入流通过FileInputStream和来操作 字节输出流通过FileOutputStream来操 ...

  8. IO流——字节流

    文件输出流 FileOutputStream:文件输出流是用于将数据写入 File,每次运行,都会覆盖之前文件中的数据 FileOutputStream(File file):创建一个向指定 File ...

  9. java IO流——字节流

    字节流主要操作byte类型数据,以byte数组为准,主要操作类有InputStream(字节输入流).OutputSteam(字节输出流)由于IputStream和OutputStream都是抽象类, ...

随机推荐

  1. 在Ubuntu14.04上配置jdk环境

    服务器环境:Ubuntu14.04 server 1.进入oracle官网下载jdk1.7.0_71_x64.gz  重命名为jdk1.7 2.使用tar -xvf  jdk1.7.0_71_x64. ...

  2. 基于mykernel完成多进程的简单内核

    学号351 原创作品转载请注明出处 + https://github.com/mengning/linuxkernel/ mykernel简介 mykernel是由孟宁老师建立的一个用于开发您自己的操 ...

  3. c++常量指针和指针常量的区别

    int a:int * const p = &a: //指针常量,*p可以修改*p = 8:(OK) p不可以修改 p++(ERROR) int a,b:const int *p = & ...

  4. Cronolog日志分割、定时清理

    阿里云发送短信提示服务器磁盘占用到80%警报短信 经过排查发现tomcat日志文件达到10个多G,手动删除过久的日志文件后恢复到50% 但是catalina.out文件还有6个G 解决方法 一.安装C ...

  5. HFun.快速开发平台(二)=》自定义列表实例

    应用系统中数据列表的展现是开发内容之一,实现的方式基本是通过编号具体的访问列表页实现,通过检索条件进行数据源的获取,列字段的描述,还可能会有检索条件的实现,列表数据的导出等功能. 为了将重复工作进行简 ...

  6. vue安装遇到vue不是内部变量

    配置path系统变量 打开我的电脑-->右键属性-->高级系统设置-->环境变量-->Path-->添加获得npm的位置(搜索vue.cmd 可以找到该位置) 全局安装位 ...

  7. 【转载】IL指令集

    转载自:http://www.cnblogs.com/knowledgesea/p/5461040.html 名称 说明 Add 将两个值相加并将结果推送到计算堆栈上. Add.Ovf 将两个整数相加 ...

  8. Linux 系统运行命令 > 查看系统信息

    查看系统运行状态 一 . 查看硬件信息 - 1. cpu信息(可以通过find,whereis,locate查出路径) #cat /proc/cpuinfo 2 . 内存信息:meminfo(可以用c ...

  9. 搭建NTP服务集群、高可用

    1.原理 Keepalived 的作用是检测后端服务器的状态,如果有一台服务器死机,或工作出现故障,Keepalived 将检测到,并将有故障的服务器从系统中剔除.当服务器工作正常后 Keepaliv ...

  10. ansible 变量详解

    定义变量的方法 1. 主机变量,在hosts文件中设置变量, [atlanta] host1 http_port= maxRequestsPerChild= host2 http_port= maxR ...