JavaIO流之字节流

什么是字节?
所谓字节(Byte),是计算机数据存储的一种计量单位。一个二进制位称为比特(bit),8个比特组成一个字节,也就是说一个字节可以用于区分256个整数(0~255)。由此我们可以知道,字节本是面向计算机数据存储及传输的基本单位,后续的字符也就是以字节为单位存储的,不同编码的字符占用的字节数不同。
那么在Java中,除了存储的意义外,Java还将字节Byte作为一种基本数据类型,该数据类型在内存中占用一个字节,用于(-128~127)范围内的整数
byte a = -128;
byte b = 127;
总的来说,字节在Java中有两种含义:
存储的单位
Java的数据类型,用于表示-128~127范围的整数
什么是字符?
计算机底层存储的是字节,字符的设计则是用于展示符号。屏幕上显示的各种文字,数字,符号等就是解码的字符。所以我们说字符是用来显示的符号,它将存储的字节转换成人们看得懂的符号,因此字符的核心就是定义字节与展示符号之间的关系,这种映射关系通常也叫做编码。
字节流的使用:
注意:InPut输入是硬盘向内存输入,OutPut输出是内存向硬盘输出,我们站在内存的角度。



字节流读入的read方法:

一次读取一个字节:
从aniki.txt中读字符,当已经没有字符可以读取的时候返回-1



我们利用返回-1可以写出循环来遍历整个字节文件


一次读取一个字节数组:



aniki.txt的内容其实是的是:
abcde/r/nfghj/r/nklmn
所以输出的是:
abcde
/r/nfgh
写循环来遍历整个文件:


字节流写入的write方法:

字节流写数据例:

追加写入例:

使用read和write方法来复制文件:


异常处理代码:

字节缓冲流:
我们的字节流是把内存中的字节/字节数组(外部输入的或者是程序内的)立即输出到硬盘,
而字节缓冲流的作用是在字节流把字节从内存输出到硬盘之前,提供一个缓冲区,让这些字节先进入缓冲区存储,
当缓冲区满或者在未满的情况下使用"字节缓冲输出流对象".flush();方法,强制输出和清空缓冲区。
缓冲区不满的情况下调用"字节缓冲输出流对象".flush();才可以写进到硬盘文件。
否则数据存储在缓冲区,文件内没有数据。但是close()方法会调用一次flush()方法。




字节缓冲流使用read和write方法实现复制文件:


JavaIO流之字节流的更多相关文章
- javaIO流(二)--字节流与字符流
一.流的基本概念 在java.io包中,File类是唯一一个与文件本身有关的程序处理类,但是File类只能操作文件本身,而不能操作文件内容,IO操作的核心意义在于输入和输出操作.而对于程序而言,输入和 ...
- JavaIO学习:字节流
JavaIO流之字节流 字节流 抽象基类:InputStream,OutputStream. 字节流可以操作任何数据. 注意: 字符流使用的数组是字符数组,char[] chs : 字节流使用的数组是 ...
- 总结JAVA----IO流中的字节流
对于IO流中字节流的总结 字节流的概念 由于应用程序,经常需要和文件打交道,所以Inputstream专门提供了读写文件的子类:FileInputStream和FileOutputStream类,如果 ...
- Java学习日记之 Java-IO流
Java中的IO流在处理上分为字节流和字符流.字节流和字符流的区别 : 1.字节流读取的时候,读到一个字节就返回一个字节: 字符流使用了字节流读到一个或多个字节(中文对应的字节数是两个,在UTF-8 ...
- java 笔记(4) —— java I/O 流、字节流、字符流
Java中使用流来处理程序的输入和输出操作,流是一个抽象的概念,封装了程序数据于输入输出设备交换的底层细节.JavaIO中又将流分为字节流和字符流,字节流主要用于处理诸如图像,音频视频等二进制格式数据 ...
- JavaIO流(输入输出操作)
Java中执行输出和输入操作,需要通过IO流.例如最常见的System.out.println()就是一个输出流.IO流的类比较多,但核心体系就是由File. InputStream .OutputS ...
- JavaIO 流(1)IO流介绍
IO流定义: 流的本质是一组单向有序,分起始和终止的数据传输过程.需要导入import java.io.* IO流分类: 按数据类型分为:字节流和字符流 字节流: 按字节进行读取(可以处理任意类型数据 ...
- Java基础 Java-IO流 深入浅出
建议阅读 重要性由高到低 Java基础-3 吃透Java IO:字节流.字符流.缓冲流 廖雪峰Java IO Java-IO流 JAVA设计模式初探之装饰者模式 为什么我觉得 Java 的 IO 很复 ...
- 理解Java中字符流与字节流的区别
1. 什么是流 Java中的流是对字节序列的抽象,我们可以想象有一个水管,只不过现在流动在水管中的不再是水,而是字节序列.和水流一样,Java中的流也具有一个“流动的方向”,通常可以从中读入一个字节序 ...
随机推荐
- ajax+node实现图片上传
利用formData实现ajax上传图片后,保存图片到指定收藏夹,然后展示新重命名后的图片 html: <input type="file" id="uploadI ...
- POJ A Plug for UNIX (最大流 建图)
Description You are in charge of setting up the press room for the inaugural meeting of the United N ...
- 【Dart学习】--Dart之字符串(String)的相关方法总结
字符串定义使用单引号或双引号 String a = "abcdefg"; String b = '; 创建多行字符串,保留内在格式使用三个单引号或三个双引号 创建多行字符串,保留内 ...
- setTag()与getTag()的使用介绍
转载博客:http://www.cnblogs.com/topcoderliu/archive/2011/06/07/2074419.html View中的setTag(Onbect)表示给View添 ...
- 个人笔记 - MATLAB
1.教程 2.基本知识 2.1 帮助文档设置成中文:链接1 2.2 多行注释: 链接1 2.3 MATLAB基本数据类型: 链接1 链接2 2.4 matlab中的 ndims(a).length( ...
- selenium2-java环境搭建 示例为chrome浏览器
首先,安装并配置JDK,安装eclipse,安装firefox和chrome.下载selenium语言的JAVA库文件,下载地址为,如果打不开,则需要翻墙:http://www.seleniumhq. ...
- 一个python练习
问题描述: 有一对兔子,每隔3个月就生一对兔子,生下来的兔子也是每隔3个月就生兔子,以此类推... 用python模拟出来: #!/usr/bin/python3 import random impo ...
- rsync+inotify实现实时同步案例
转自:http://chocolee.blog.51cto.com/8158455/1400596 随着应用系统规模的不断扩大,对数据的安全性和可靠性也提出的更好的要求,rsync在高端业务系统中也逐 ...
- 原 Nginx网络架构实战学习笔记(七):nginx性能优化小总结
文章目录 优化思路: 优化过程 Php-mysql的优化 Nginx+phjp+mysql+nginx 压力测试: 模拟 前0-10万是热数据, 10-20万是冷门数据 请求热数据 0-10,请求9次 ...
- .NET Core开源组件:后台任务利器之Hangfire 转载 https://www.cnblogs.com/chenug/p/6655636.html
.NET Core开源组件:后台任务利器之Hangfire 一.简述 Hangfire作为一款高人气且容易上手的分布式后台执行服务,支持多种数据库.在.net core的环境中,由Core自带的D ...