java-RandomAccessFile操作以及IO流简单使用
1.1RandomAccessFile--使用RAF读写基本类型数据,以及了解Raf的指针操作
write有相对应的写入基本类型的方法
void seek(Long pos)调整RAF指针位置,可以在写入时随时调整指针位置
raf.write(bs);写入一个字符串数组getBytes("UTF-8")--将字符串按照UTF-8解析成字符数组
raf.read(date);读取--参数为创建好的字节数组后将字节放在数组中返回参数为读取到的长度
1.2java IO流;IO流是用来读写数据的Java标准操作
流分为两个方向:
输入流输出流
输入流,inputstream:用于从数据源读取数据到程序中的流,负责读取数据操作
输出流,outputstream:用于从程序中将数据发送出去的流,负责写出数据操作
流进行了两个分类:
字节流,处理流
字节流:读写数据一定是建立在字节流的基础上的,是实际建立在数据源与程序间的“管道”,负责时间搬运数据
处理流:处理流不能独立存在,故名思议,用来处理其他流的流,处理其他流的目的是通过处理流可以简化对其处理流的读写操作(处理工作由处理流代劳)
文件流:文件流是一对低级流,文件输入流用于读取文件数据,文件输出流用于向文件中写入数据。
FileOutputStream支持两组常用的构造方法
FileOutputStream(String path)
FileOutputStream(File file)
创建针对指定的文件的输出流,默认是覆盖模式,即:若指定的文件已经存在,会将该文件所有的数据清除,然后通过该流写出的所有数据作为这个文件的数据保存
FileOutputStream(String path,boolean append)
FileOutputStream(File file,boolean append)
第二个参数为boolean值,若该值为true,则输出流为追加模式,即:该文件原有数据保留,通过当前流写出的所有数据会全部追加到文件的末尾。
文件输入流,用于读取文件中数据的流FileInputStream
缓冲流bufferedInputStrram缓冲字节输入流
bufferedOutputStrram缓冲字节输出流
缓冲流是一对高级流,功能是加快读写效率
缓冲流内部维护了一个字节数组所以实际上缓冲流还是靠提高读写的数据量减少实际的读写次数提高读写效率,bis.read()方法在第一次读取时实际读取了一组字节,并将第一个字节返回,当再次调用该方法读取一个字节时会将第二个字节直接返回。直到所有的字节都返回过后才会再次实际获取一组字节回来
缓冲输出流的缓冲区问题--flush();当需要强制将缓存中数据写入到内存中,使用这个方法可以实现,在调用缓冲流的close方法的时候,在方法的内部也调用了这个方法
对象流java.io.ObjectOutputStream
对象流是一对高级流,可以方便我们读写Java中的任何对象(对象与字节的转换工作有对象流完成)对象输出流,用于写出java中的对象(想对应的对象的输入流下次)
我是初学者,如有更新不好的,欢迎这位大神指出,谢谢大家!
更多精彩以后更新,转载注明!
java-RandomAccessFile操作以及IO流简单使用的更多相关文章
- Java 持久化操作之 --io流与序列化
1)File类操作文件的属性 1.File类的常用方法 1. 文件的绝对完整路径:getAbsolutePath() 文件名:getName() 文件相对路径:getPath() 文件的上一级目录:g ...
- Java文件操作(IO流)
File 在java中用来表示文件和文件夹的具体类. File的构建 File的常见方法 字节流: 对象序列化: 字符流: 转接流: InputStreamReader. ...
- Java IO流简单使用
Java IO流简单使用 也许是以前IO方面接触的比较少,我对于读和写的概念老是混淆. 趁着现在实习比较闲小结一下,我个人理解读和写都是针对程序,分别就是程序的输入和输出,或者叫读入写出. Java ...
- Java socket中关闭IO流后,发生什么事?(以关闭输出流为例)
声明:该博文以socket中,关闭输出流为例进行说明. 为了方便讲解,我们把DataOutputstream dout = new DataOutputStream(new BufferedOutpu ...
- java写文件读写操作(IO流,字节流)
package copyfile; import java.io.*; public class copy { public static void main(String[] args) throw ...
- 乐字节Java之file、IO流基础知识和操作步骤
嗨喽,小乐又来了,今天要给大家送上的技术文章是Java重点知识-IO流. 先来看看IO流的思维导图吧. 一. File 在Java中,Everything is Object!所以在文件中,也不例外! ...
- java学习(九) —— java中的File文件操作及IO流概述
前言 流是干什么的:为了永久性的保存数据. IO流用来处理设备之间的数据传输(上传和下载文件) java对数据的操作是通过流的方式. java用于操作流的对象都在IO包中. java IO系统的学习, ...
- 【Java】IO流简单分辨
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/5827509.html Java的IO流体系十分庞大,并且体系层次稍复杂,很容易记混或记错.在此,我把平时经常用 ...
- Java中常见的IO流及其使用
Java中IO流分成两大类,一种是输入流.全部的输入流都直接或间接继承自InputStream抽象类,输入流作为数据的来源.我们能够通过输入流的read方法读取字节数据.还有一种是输出流,全部的输出流 ...
随机推荐
- net core天马行空系列-可用于依赖注入的,数据库表和c#实体类互相转换的接口实现
1.前言 hi,大家好,我是三合.作为一名程序猿,日常开发中,我们在接到需求以后,一般都会先构思一个模型,然后根据模型写实体类,写完实体类后在数据库里建表,接着进行增删改查, 也有第二种情况,就是有些 ...
- AcWing-1022
题解借鉴两位大佬的解析 墨染空 && 野生铅笔 本题是一道 01背包 的扩展题 -- 二维费用01背包问题 把 野生宝可梦 看做物品,则捕捉他需要的 精灵球 个数就是第一费用,战斗皮神 ...
- 【Java面试】Mysql为什么使用B+Tree作为索引结构
一个工作8年的粉丝私信了我一个问题. 他说这个问题是去阿里面试的时候被问到的,自己查了很多资料也没搞明白,希望我帮他解答. 问题是: "Mysql为什么使用B+Tree作为索引结构" ...
- Node.js精进(2)——异步编程
虽然 Node.js 是单线程的,但是在融合了libuv后,使其有能力非常简单地就构建出高性能和可扩展的网络应用程序. 下图是 Node.js 的简单架构图,基于 V8 和 libuv,其中 Node ...
- 3.对互斥事件和条件概率的相互理解《zobol的考研概率论教程》
tag:这篇文章没太多思考的地方,就是做个过渡 1.从条件概率来定义互斥和对立事件 2.互斥事件是独立事件吗? 3.每个样本点都可以看作是互斥事件,来重新看待条件概率 一.从条件概率来定义互斥和对立事 ...
- C语言学习之我见-strcmp()字符串比较函数
strcmp()函数,用于两个字符串的比较. (1)函数原型 int strcmp(const char *_Str1,const char *_Str2); (2)头文件 string.h (3)功 ...
- 为什么 C# 访问 null 字段会抛异常?
一:背景 1. 一个有趣的话题 最近在看 硬件异常 相关知识,发现一个有意思的空引用异常问题,拿出来和大家分享一下,为了方便讲述,先上一段有问题的代码. namespace ConsoleApp2 { ...
- 倾斜摄影3D模型|手工建模|BIM模型 轻量化处理
一.什么是大场景? 顾名思义,大场景就是能够从一个鸟瞰的角度看到一个大型场景的全貌,比如一个园区.一座城市.一个国家甚至是整个地球.但过去都以图片记录下大场景,如今我们可以通过建造3D模型来还原大场景 ...
- crane:字典项与关联数据处理的新思路
前言 在我们日常开发中,经常会遇到一些烦人的数据关联和转换问题,比如典型的: 对象属性中个有字典 id,需要获取对应字典值并填充到对象中: 对象属性中有个外键,需要关联查询对应的数据库表实体,并获取其 ...
- UiPath选择器之页面选择器的介绍和使用
一.页面选择器的介绍 某些软件程序的布局和属性节点具有易变的值,例如某些Web应用程序.UiPath Studio无法预测这些变化,因此,您可能必须手动生成一些选择器. 每个属性都有一个分配的值.选择 ...