JAVA语言中RandomAccessFile类读写文件
Vivian 2018-07-03 来源 : 阅读 680 评论 0

摘要:​本文主要向大家介绍了JAVA语言中RandomAccessFile类读写文件,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。

本文主要向大家介绍了JAVA语言中RandomAccessFile类读写文件,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。

import java.io.File;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.util.Arrays;
 
<em>/**
</em><em> *RandomAccessFile </em><em>:</em><em>java</em><em>提供的对文件内容的访问,既可以读文件,也可以写文件。
</em><em>  </em><em>RandomAccessFile</em><em>支持随机访问文件,可以访问文件的任意位置
</em><em>
</em><em> </em><em>(1)java</em><em>文件模型
</em><em> 在硬盘上的文件是</em><em>byte byte byte</em><em>存储的</em><em>,</em><em>是数据的集合
</em><em>
</em><em> </em><em>(2)</em><em>打开文件
</em><em> 有两种模式</em><em>"rw"(</em><em>读写</em><em>)  "r"</em><em>(只读</em><em>)
</em><em> RandomAccessFile raf = new RandomeAccessFile(file,"rw")
</em><em> </em><em>文件指针,打开文件时指针在开头 </em><em>pointer = 0;
</em><em>
</em><em> (3) </em><em>写方法
</em><em> </em><em>raf.write(int)---></em><em>只写一个字节(后</em><em>8</em><em>位</em><em>),</em><em>同时指针指向下一个位置,准备再次写入
</em><em>
</em><em> </em><em>(4)</em><em>读方法
</em><em> </em><em>int b = raf.read()---></em><em>读一个字节
</em><em>
</em><em> (</em><em>5</em><em>)文件读写完成以后一定要关闭(</em><em>Oracle</em><em>官方说明)
</em><em>
</em><em>
</em><em>
</em><em> </em><em>*/
</em>public class RafDemo {
    public static void main(String[] args) throws IOException {
 
        String string="C:"+ java.io.File.<em>separator</em>+"Users"+ java.io.File.<em>separator</em>+"hasee"+ java.io.File.<em>separator</em>+"Desktop"+ java.io.File.<em>separator</em>+"demo";
       File demo=new File(string);
        if(!demo.exists())
            demo.mkdir();//在桌面创建一个文件夹
        File file = new File(demo,"raf.txt");//创建指定目录下的文件
        if(!file.exists())
            file.createNewFile();
       //对文件进行读写
        RandomAccessFile raf = new RandomAccessFile(file, "rw");
        //指针的位置
        System.<em>out</em>.println(raf.getFilePointer());
 
        raf.write('A');//只写了一个字节
        System.<em>out</em>.println(raf.getFilePointer());
        raf.write('B');
        System.<em>out</em>.println(raf.getFilePointer());
 
  /*      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.<em>out</em>.println(raf.length());
 
        //读文件,必须把指针移到头部
        raf.seek(0);
        //一次性读取,把文件中的内容都读到字节数组中
        byte[] buf = new byte[(int)raf.length()];
        raf.read(buf);
 
        System.<em>out</em>.println(Arrays.toString(buf));//将数组以字符串形式输出
        for (byte b : buf) {
            System.<em>out</em>.println(Integer.toHexString(b & 0xff)+" ");
        }
        raf.close();
    }
 
}

希望对JAVA有兴趣的朋友有所帮助。了解更多内容,请关注职坐标编程语言JAVA频道!


本文由 @Vivian 发布于职坐标。未经许可,禁止转载。
喜欢 | 2 不喜欢 | 0
看完这篇文章有何感觉?已经有2人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    ICP许可  沪B2-20190160

站长统计