Java基础IO流(五)RandomAccessFile
RandomAccessFile java提供的对文件内容的访问,既可以读文件也可以写文件。
RandomAccessFile支持随机访问文件,可以访问文件的任意位置
(1)java文件模型:
在硬盘上的文件是byte byte byte存储的,是数据的集合
(2)打开文件:
有两种模式“rw"(读写) ”r"(只读)
RandomAccessFile raf = new RandomAccessFile(file,"rw")
文件指针,打开文件时指针在开头 pointer = 0;
(3)写方法
raf.write(int) -->只写一个字节(后8位),同时指针指向下一个位置,准备再次写入
(4)读方法
int b = raf.read() --->读一个字节
(5) 文件读写完以后一定要关闭(Oracle官方说明)
package Blog;import java.io.File; import java.io.IOException; import java.io.RandomAccessFile; import java.util.Arrays;public class RafDemo {public static void main(String[] args) throws IOException {File demo = new File("demo");if (!demo.exists()){demo.mkdir();}File file = new File(demo,"raf.dat");if (!file.exists()) {file.createNewFile();}RandomAccessFile raf = new RandomAccessFile(file, "rw");//指针的位置 System.out.println(raf.getFilePointer());raf.write('A');//只写了一个字节 System.out.println(raf.getFilePointer());raf.write('B');int i = 0x7fffffff;//用write方法每次只能写一个字节,如果要把i写进去就得写4次raf.write(i >>> 24);//高8位raf.write(i >>> 16);raf.write(i >>> 8);raf.write(i);System.out.println(raf.getFilePointer());//可以直接写一个int raf.writeInt(i);String s = "中";byte[] gbk = s.getBytes("gbk");raf.write(gbk);System.out.println(raf.length());//读文件,必须把指针移到头部raf.seek(0);//一次性读取,把文件中的内容都读到字节数组中byte[] buf = new byte[(int)raf.length()];raf.read(buf);System.out.println(Arrays.toString(buf));String s1 = new String(buf);System.out.println(s1);for (byte b : buf){System.out.println(Integer.toHexString(b & 0xff) + " ");}raf.close();} }
转载于:https://www.cnblogs.com/deepSleeping/p/10111341.html
Java基础IO流(五)RandomAccessFile相关推荐
- # Java基础——IO流
Java基础--IO流 File类的使用(熟悉构造器和方法的使用) File类的一个对象,代表一个文件或一个文件目录(俗称:文件夹) File类的声明在java.io包下 文件和文件目录路径的抽象表示 ...
- Java基础-IO流对象之数据流(DataOutputStream与DataInputStream)
Java基础-IO流对象之数据流(DataOutputStream与DataInputStream) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.数据流特点 操作基本数据类型 ...
- Java基础IO流(二)字节流小案例
JAVA基础IO流(一)https://www.cnblogs.com/deepSleeping/p/9693601.html ①读取指定文件内容,按照16进制输出到控制台 其中,Integer.to ...
- Java基础IO流之字符流的使用
☆引言☆ 大家好,我是痛而不言笑而不语的浅伤.IO流分为字节流和字符流,而上一篇文章我们学习了字节流(Java基础IO流之字符流的使用),这篇文章带大家一起来学习字符流吧.对文章中描述错误的希望大家积 ...
- Java基础—IO流
第一讲 IO概述 1. 流的概念 IO流即InputOutput的缩写,在Java中IO流用来处理设备之间的数据传输,Java对数据的操作是通过IO流的方式, 我们可以把IO流抽象的当作一根管道, ...
- 黑马程序员-JAVA基础-IO流之字符流和字符流缓冲区
------- android培训.java培训.期待与您交流!------- Java 的IO 流 是实现输入和输出的基础,Java 中把不同的输入.输出源抽象表述为"流" (S ...
- JAVA基础 IO流技术学习笔记
目录 一.IO 流技术介绍 1.1 什么是IO? 1.2 流的概念 1.3 数据源 1.3.1 什么是数据源? 1.3.2数据源的分类 二.第一个简单的IO流程序 三.IO流经典写法(适用于任何 ...
- java基础 io流 字节流 字符流 节点流 包装流 转换流 缓冲流 对象流 打印流 Properties类
目录 1.概念 2.常用的文件操作 2.1 创建文件 2.2 获取文件相关信息 2.3 目录的操作和文件删除 3. IO流原理及流的分类 3.1 流的分类 4.InputStream 字节输入流 4. ...
- Java基础——IO流
IO流基础知识内容: 1.java.io包下 File类:java程序中的此类的一个对象,就对应着硬盘中的一个文件或网络中的一个资源. File file1 = new File("d:\\ ...
- Java基础—IO流(三)
IO流(三) File类 一.概述 File类用于将文件或文件夹封装成对象,方便对文件和文件夹的属性信息进行操作.该类可以作为参数传递给IO流的构造函数,弥补流对象在操作文件和文件夹上的缺陷. 二.F ...
最新文章
- Script:列出数据库中子表上没有对应索引的外键
- 共享SQL语句减少硬解析
- React 简单实例 (React-router + webpack + Antd )
- C# —— 序列化与反序列化
- csv转json文件
- 【图像处理基础知识】-混合高斯背景建模
- git 代码回滚_git代码版本管理(1)——git版本回滚
- struts2 mysql配置文件路径_Struts2(四)Struts2配置文件的配置
- php form foreach,php – Drupal Form API – 使用foreach循环来构建表单
- 开心消消乐h5版游戏案例分享
- 面经 - JAVA知识点
- 映美Jolimark G102 打印机驱动
- 学习随笔——2.仿苹果官网效果,滚动缩放图片
- 智慧城市发力,区块链助力土木建设数据存储
- 杨永信和他荒唐至极的 “网瘾电击疗法”
- TX2 4.6.1 全部软件环境刷机要点
- matlab 读取ENVI中*.img格式图片代码
- SQL常用函数及使用案例
- VC++6.0显示代码行号【成功破解行数显示限制,完全免费!!!】
- Jacoco 入门使用