java字节流知识点总结
在java中我们使用输入流来向一个字节序列对象中写入,使用输出流来向输出其内容。C语言中只使用一个File包处理一切文件操作,而在java中却有着60多种流类型,构成了整个流家族。看似庞大的体系结构,其实只要使用适合的方法将其分门别类,就显得清晰明了了。而我准备将其按照处理文件类型的不同,分为字节流类型和字符流类型。共两篇文章,本篇从字节流开始。主要包含以下内容:
- InputStream/OutPutStream - - -字节流基类
- FileInputStream/FileOutputStream - - - - -处理文件类型
- ByteArrayInputStream/ByteArrayOutputStream - - - -字节数组类型
- DataInputStream/DataOutputStream - - - -装饰类
- BufferedInputStream/BufferedOutputStream - - - -缓冲流
在java基础学习中特别是io学习中字节流是非常重要的,这里一起探讨下,主要是了解下面几点:
- 1、了解流的概念
- 2、了解字符流的作用
- 3、了解文件的标准操作步骤
- 4、了解字节与字符的操作区别
第一步
在程序中所有的数据都是以流的方式存储或传输的,程序需要数据时使用流读取数据,程序需要将一些数据保存的时候使用输出流保存
第二步
程序中实际上输入输出都是以流的形式保存的,流中保存的实际上全是字节文件
第三步
java.io包中操作文件的内容主要有两大类,字节流字符流,两部分都包括输入输出操作,字节流主要使用OutputStream InputStream,字符流使用Wirter、Reader完成
第四步
javaIO中文件操作有相应的步骤:
1、使用File类打开一个文件
2、通过字节流或字符流指定输出位置
3、进行读写操作
4、关闭输入输出
第五步
字节流主要操作的是byte类型数据,以byte数组为准,主要操作类是InputStream、OutputStream
,OutputStream是Io包中输出流最大父类,此类是抽象类,如果想要使用此类,必须通过子类实现,比如FileOutputStream
第六步
InputStream是字节输入流,可以通过这个类把文件的内容读取进来,inputStream也是抽象类,如果想使用此类必须用子类实现,比如FileInputStream
相关推荐
-
Java IO中字节流复制图片实现代码
Java IO--字节流复制图片实例 字节流用来操作图片.视屏.音频(进制文件) 实例代码: package learn; import java.io.*; public class Learn{ public static void main(String[] args) throws IOException { File file1=new File("D:/a.jpg"); File file2=new File("D:/b.jpg"); byte[] b=
-
Java中的字节流文件读取教程(一)
前言 上篇文章我们介绍了抽象化磁盘文件的 File 类型,它仅仅用于抽象化描述一个磁盘文件或目录,却不具备访问和修改一个文件内容的能力. Java 的 IO 流就是用于读写文件内容的一种设计,它能完成将磁盘文件内容输出到内存或者是将内存数据输出到磁盘文件的数据传输工作. Java IO 流的设计并不是完美的,设计了大量的类,增加了我们对于 IO 流的理解,但无外乎为两大类,一类是针对二进制文件的字节流,另一类是针对文本文件的字符流.而本篇我们就先来学习有关字节流的相关类型的原理以及使用场景等细节
-
Java中IO流 字节流实例详解
Java中IO流 字节流实例详解 IO流(输入流.输出流),又分为字节流.字符流. 流是磁盘或其它外围设备中存储的数据的源点或终点. 输入流:程序从输入流读取数据源.数据源包括外界(键盘.文件.网络-),即是将数据源读入到程序的通信通道. 输出流:程序向输出流写入数据.将程序中的数据输出到外界(显示器.打印机.文件.网络-)的通信通道. 字节流 1.InputStream.OutputStream InputStream抽象了应用程序读取数据的方式 OutputStream抽象了应用程序写出数据
-
Java字节流与基本数据类型的转换实例
在实际开发中,我们经常遇到与嵌入式进行通信的情况,而由于一些嵌入式设备的处理能力较差,往往以二进制的数据流的形式传输数据,在此将这些常见的转换做一总结. 注意:默认传输时使用小端模式 将字节流转换为int类型数据 public static int getInt(byte[] bytes) { return (0xff & bytes[0]) | (0xff00 & (bytes[1] << 8)) | (0xff0000 & (bytes[2] << 16
-
Java中的字节流文件读取教程(二)
接着上篇文章,我们继续来学习 Java 中的字节流操作. 装饰者缓冲流 BufferedInput/OutputStream 装饰者流其实是基于一种设计模式「装饰者模式」而实现的一种文件 IO 流,而我们的缓冲流只是其中的一种,我们一起来看看. 在这之前,我们使用的文件读写流 FileInputStream 和 FileOutputStream 都是一个字节一个字节的从磁盘读取或写入,非常耗时. 而我们的缓冲流可以预先从磁盘一次性读出指定容量的字节数到内存中,之后的读取操作将直接从内存中读取,提
-
Java使用字节流复制文件的方法
其实用java程序复制文件并不难,具体内容如下 import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.LinkedList; import java.util.List; //文件复制 //E:/3.jpg ---> D:/1.jpg public class CopyFileByIo { public static void ma
-
Java字符流与字节流区别与用法分析
本文实例讲述了Java字符流与字节流区别与用法.分享给大家供大家参考,具体如下: 字节流与字符流主要的区别是他们的的处理方式 流分类: 1.Java的字节流 InputStream是所有字节输入流的祖先,而OutputStream是所有字节输出流的祖先. 2.Java的字符流 Reader是所有读取字符串输入流的祖先,而writer是所有输出字符串的祖先. InputStream,OutputStream,Reader,writer都是抽象类.所以不能直接new 字节流是最基本的,所有的Inpu
-
java字节流知识点总结
在java中我们使用输入流来向一个字节序列对象中写入,使用输出流来向输出其内容.C语言中只使用一个File包处理一切文件操作,而在java中却有着60多种流类型,构成了整个流家族.看似庞大的体系结构,其实只要使用适合的方法将其分门别类,就显得清晰明了了.而我准备将其按照处理文件类型的不同,分为字节流类型和字符流类型.共两篇文章,本篇从字节流开始.主要包含以下内容: InputStream/OutPutStream - - -字节流基类 FileInputStream/FileOutputStre
-
详解JAVA 字节流和字符流
1.InputStream 和 Reader InputStream 和 Reader 是所有输入流的抽象基类,本身并不能创建实例来执行输入,但它们将成为所有输入流的模板,所以它们的方法是所有输入流都可使用的方法. 在 InputStream 里包含如下三个方法. int read():从输入流中读取单个字节,返回所读取的字节数据(字节数据可直接转换为int类型). int read(byte[] b):从输入流中最多读取 b.length 个字节的数据,并将其存储在字节数组 b 中,返回实际读
-
Java字节流和字符流及IO流的总结
从接收输入值说起 在日常的开发应用中,有时候需要直接接收外部设备如键盘等的输入值,而对于这种数据的接收方式,我们一般有三种方法:字节流读取,字符流读取,Scanner 工具类读取. 字节流读取 直接看一个例子: public class Demo01SystemIn { public static void main(String[] args) throws IOException { int a = System.in.read(); System.out.println(a); char
-
Java基本知识点之变量和数据类型
Java中的变量和基本数据类型: 写完第一个java程序之后,我们对Java也有了初步的了解,现在我们再来继续认识一下Java中的基本知识点--变量和数据类型. 那么我们该怎样来认识变量和数据类型呢,在这里,我们首先来认识一下内存,我们日常生活中的计算机体系中内存主要分为内存储器和外存储器,比如说我们平常看我们电脑配置的时候,都会看到8G+256G这样的标志,其中的8G就是所说的内存储器(RAM),而256G也就是外存储器,诸如磁盘,u盘,光盘等,这里我们就不详细的研究了.我们定义的变量占用的就
-
详解Java注解知识点
一.注解是什么 Java 注解用于为 Java 代码提供元数据,看完这句话也许你还是一脸懵逼,用人话说就是注解不直接影响你的代码执行,仅提供信息.接下我将从注解的定义.元注解.注解属性.自定义注解.注解解析JDK 提供的注解这几个方面再次了解注解(Annotation) 二.jdk支持的注解有哪些 2.1 三种常用的注解: @SuppressWarnings 该注解的作用是阻止编译器发出某些警告信息.它可以有以下参数: deprecation :过时的类或方法警告. unchecked:执行了未
-
常用的Java数据结构知识点汇总
目录 1.数据结构分类 2.线性数据结构 2.1数组 2.2可变数组 2.3链表 2.4栈 2.5队列 3.非线性数据结构 3.1树 3.2图 3.3散列表 3.4堆 1. 数据结构分类 按照线性和非线性可以将Java数据结构分为两大类: ①线性数据结构:数组.链表.栈.队列②非线性数据结构:树.堆.散列表.图 2. 线性数据结构 2.1 数组 数组是一种将元素存储于连续内存空间的数据结构,并且要求元素的类型相同. // 定义一个数组长度为5的数组array int[] array = new
-
Java多线程知识点全面总结
目录 Java多线程知识点总结 (1)什么是进程?什么是线程? (2)多线程的运行状态 (3)线程的创建和使用 (4)Runnable 接口实现多线程 (5)Callable接口实现多线程 多线程常用操作方法 (1)线程的命名和取得 (2)线程休眠 (3)线程中断 (4)线程强制执行 (5)线程礼让 (6)线程优先级 (7)如何停止线程 (8)后台守护线程 (9)volatile 关键字 线程的同步和死锁 (1)线程同步问题 (2)线程死锁问题 (3)生产者消费者问题 Java多线程知识点总结
-
java 字节流和字符流的区别详解
字节流与和字符流的使用非常相似,两者除了操作代码上的不同之外,是否还有其他的不同呢? 实际上字节流在操作时本身不会用到缓冲区(内存),是文件本身直接操作的,而字符流在操作时使用了缓冲区,通过缓冲区再操作文件,如图所示. 下面以两个写文件的操作为主进行比较,但是在操作时字节流和字符流的操作完成之后都不关闭输出流. 范例:使用字节流不关闭执行 package org.lxh.demo12.byteiodemo; import java.io.File; import java.io.FileOutp
-
Java字节流 从文件输入输出到文件过程解析
假如需要复制一张图片,一份word,一个rar包.可以以字节流的方式,读取文件,然后输出到目标文件夹. 以复制一张4M的图片举例. 每次读一个字节: ch = (char)System.in.read(); //读入一个字符,返回读到的字节的int表示方式,读到末尾返回-1 复制时候一个字节一个字节的读取.写入,这样是很慢的.设置一个用来缓冲的字符数组,会让复制的过程快很多(每次读入的字节变多). 方便阅读,类的名称用中文描述 import java.io.*; public class 字节流
-
Java控制结构知识点详解
if结构 if(条件表达式){ //执行代码 }else if(条件表达式){ //执行代码 }else{ //执行代码 } 条件表达式的结果是true|false,具体的形式: 1.直接的布尔变量 2.比较运算符得到的结果或逻辑运算符的结果 3.在Java中,非零的数值类型或非空字符串不能用于返回布尔值 switch结构 switch(变量名){ case 字面常量1: //执行代码 break; case 字母常量2: //执行代码 break; default: //执行代码 } 1.变量
随机推荐
- js表单中选择框值的获取及表单的序列化
- JavaScript获取当前时间向前推三个月的方法示例
- perl 中的or与||的区别
- C#正则表达式之Regex类用法详解
- C++访问Redis的mset 二进制数据接口封装方案
- jsp 开发之struts2中s:select标签的使用
- 微软官方SqlHelper类 数据库辅助操作类 原创
- js动态添加表格数据使用insertRow和insertCell实现
- 微信小程序去哪里找 小程序到底如何使用(附小程序名单)
- python定时采集摄像头图像上传ftp服务器功能实现
- c#中抽象类和接口的详细介绍
- mysql常用函数汇总(分享)
- MySQL中的唯一性约束与NULL详解
- 基于NodeJS的前后端分离的思考与实践(五)多终端适配
- Spring Boot整合MyBatis操作过程
- BootStrap的弹出框(Popover)支持鼠标移到弹出层上弹窗层不隐藏的原因及解决办法
- Ubuntu下查看ssh服务是否安装或启动的方法
- MySQL/MariaDB/Percona数据库升级脚本
- Bootstrap基本组件学习笔记之导航(10)
- 理解C#中的Lambda表达式