字节输入流操作步骤:
  A:创建字节输入流对象
  B:调用read()方法读取数据,并把数据显示在控制台
  C:释放资源

步骤A、C 略过,说步骤B

   读取数据的方式:
     A:int read():一次读取一个字节
     B:int read(byte[] b):一次读取一个字节数组

要想进行字节输入流的操作,我得先创建一个文件,并用字节输出流输出内容到这个文件里面:

 //首先我创建一个txt文件,并输出内容
File file = new File("a.txt"); //用字节输出流输出数据
FileOutputStream out = new FileOutputStream(file);
out.write("java IO".getBytes());
out.close();

读取数据的方式A:int read():一次读取一个字节

int by = fis.read();
System.out.println(by);//这里输出的会是j的ASCII码‘106’
System.out.println((char) by);//所以要进行类型转换,输出‘j’,因为每次读取一个字节,都会进行转换类型,所以如果是汉字,那么转换结果我们看不懂

因为这个方式只是读取一个字节,所以如果接着写下去,它会输出下一个字节,相当于添加了个next在前面。

直到你读取到内容最后,没有内容可读取了,就会返回“-1”。所以,我们可以使用循环来一次性把里面的内容输出:

int by = 0;
while((by = in.read()) != -1){//当返回的是-1时,代表后面没有内容了,就跳出这个循环。
System.out.print((char)by);

读取数据的方式B:int read(byte[] b):一次读取一个字节数组

数组的长度一般是1024或者1024的整数倍

这个方法的返回值其实是实际读取的字节个数。同样,这个方法若是返回值为“-1”,则代表后面没有数据

 byte[] bys = new byte[1024];//1024的整数倍
int len = 0;//存储读取的实际长度
while ((len = in.read(bys)) != -1) {
System.out.print(new String(bys, 0, len));//打印这个数组的所有内容
}

注意:以上方法为了方便,都是把异常抛出。记得,一定要释放资源

xxx.close();

java 20 - 7 字节输入流的操作的更多相关文章

  1. java 20 - 5 字节输出流写出数据的一些方法

    首先回顾下 字节输出流操作步骤:  A:创建字节输出流对象  B:调用write()方法  C:释放资源 创建字节流输出对象 FileOutputStream fos = new FileOutput ...

  2. 字节输入流_InputStream类&FileInputStream类介绍和字节输入流读取字节数据

    java.io.InputStream:字节输入流 此抽象类是表示字节输入流的所有类的超类 定义了所有子类共性的方法: int read()从输入流中读取数据的下一个字节 int read(byte[ ...

  3. 字节输出流的续写和换行和字节输入流InputStream类&FileInputStream类介绍

    数据追加续写 每次程序运行,创建输出流对象,都会清空目标文件中的数据.如何保目标文件中的数据,还能继续添加新数据呢? public FileOutputStream(File file,boolean ...

  4. java 20 - 9 带有缓冲区的字节输出流和字节输入流

    由之前字节输入的两个方式,我们可以发现,通过定义数组读取数组的方式比一个个字节读取的方式快得多. 所以,java就专门提供了带有缓冲区的字节类: 缓冲区类(高效类) 写数据:BufferedOutpu ...

  5. Java 之 字节输入流 [InputStream]

    一.字节输入流 java.io.InputStream 抽象类是表示字节输入流的所有类的超类,可以读取字节信息到内存中. 它定义了字节输入流的基本共性功能方法. 共性方法: public void c ...

  6. java IO流 之 字节输入流 InputString()

    学习java的重点之一:InputStream  字节输入流的使用 (1)FileInputstream: 子类,读取数据的通道 使用步骤: 1.获取目标文件:new File() 2.建立通道:ne ...

  7. 乐字节Java反射之四:反射相关操作

    大家好,乐字节小乐继续为Java初学者讲述Java基础知识.上次说到乐字节Java反射之三:方法.数组.类加载器,这次是Java反射之四:反射相关操作 1.操作属性 //1.获取Class对象 Cla ...

  8. Java(20~24)

    1.Collection中的集合称为单列集合,Map中的集合称为双列集合(键值对集合). 2.Map常用方法:map.put()   map.get()   map.remove()   map.ke ...

  9. Java中的字节,字符与编码,解码

    ASCII编码 ASCII码主要是为了表示英文字符而设计的,ASCII码一共规定了128个字符的编码(0x00-0x7F),只占用了一个字节的后面7位,最前面的1位统一规定为0. ISO-8859-1 ...

随机推荐

  1. ADO.NET 完整的修改和删除

    namespace 完整修改{ class Program { static void Main(string[] args) { bool has = false; Console.Write(&q ...

  2. 【GOF23设计模式】模板方法模式

    来源:http://www.bjsxt.com/ 一.[GOF23设计模式]_模板方法模式.钩子函数.方法回调.好莱坞原则 package com.test.templateMethod; publi ...

  3. css权重是什么

    css权重是什么? 概述 css Specificity中文一般译为css优先级.css权重.相比"权重","优先级"更好理解,mozilla官方中文文档就翻译 ...

  4. javascript --- 设计模式之单体模式(一)

    单体是一个用来划分命名空间并将一些相关的属性与方法组织在一起的对象,如果她可以被实例化的话,那她只能被实例化一次(她只能嫁一次,不能二婚). 单体模式是javascript里面最基本但也是最有用的模式 ...

  5. ABAP常用函数集锦

    函数名 描述 SD_VBAP_READ_WITH_VBELN 根据销售订单读取表vbap中的信息EDIT_LINES 把READ_TEXT返回的LINES中的行按照TDFORMAT=“*”重新组织VI ...

  6. UIView简单动画

    UIView动态实现的效果有以下几种: 1.动态改变frame 2.动态改变color 3.动态改变alpha 4.动态改变bounds 首先,我们先看几种BasicView动画 #pragma ma ...

  7. SharePreference是如何实现的——序列化XML文件

    还记得上一篇我们讲到了用SharePreference来存储数据,那么究竟它是如何实现的呢,今天我们就来仔细看看其实现的细节,我们给它一个准确的名字,叫做XML序列化器(XmlSerializer). ...

  8. clang: error: no such file or directory: xxx.pch

    今天打开一个下载的例子 报clang: error: no such file or directory: xxx.pch的错 说一下解决方案 1.先在你的工程里找到这.pch文件- 2.把它现在的路 ...

  9. 如何写BaseDomain

    上图摘自<Spring3.x企业应用开发实战> 提到了使用org.apache.commons.lang3.builder ToStringBuilder进行toString方法的统一. ...

  10. android中实现view可以滑动的六种方法续篇(一)

    承接上一篇,如果你没有读过前四章方法,可以点击下面的链接: http://www.cnblogs.com/fuly550871915/p/4985053.html 下面开始讲第五中方法. 五.利用Sc ...