欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java中IO流 RandomAccessFile類實(shí)例詳解

 更新時(shí)間:2017年05月14日 15:15:40   投稿:lqh  
這篇文章主要介紹了Java中IO流 RandomAccessFile類實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下

Java中IO流 RandomAccessFile類實(shí)例詳解

RandomAccessFile

  1. java提供的對(duì)文件內(nèi)容的訪問,既可以讀文件,也可以寫文件。
  2. 支持隨機(jī)訪問文件,可以訪問文件的任意位置。
  3. java文件模型,在硬盤上的文件是byte byte byte存儲(chǔ)的,是數(shù)據(jù)的集合
  4. 打開文件,有兩種模式,“rw”讀寫、“r”只讀;RandomAccessFile raf = new RandomAccessFile(file, "rw");,文件指針,打開文件時(shí)指針在開頭 point = 0;
  5. 寫方法, raf.write()-->只寫一個(gè)字節(jié)(后八位),同時(shí)指針指向下一個(gè)位置,準(zhǔn)備再次寫入
  6. 讀方法,int b = raf.read()-->讀一個(gè)字節(jié)
  7. 文件讀寫完成以后一定要關(guān)閉(Oracle官方說明)

 RafDemo.java

package com.test.io;

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');//一個(gè)char型占兩個(gè)字節(jié),但是write一次只寫入一個(gè)字節(jié)(A字符的后八位)
    System.out.println(raf.getFilePointer());
    raf.write('B');
    
    int i = 0x7fffffff;
    raf.write(i >>> 24);//寫入i的高八位
    raf.write(i >>> 16);
    raf.write(i >> 8);
    raf.write(i);
    System.out.println(raf.getFilePointer());
    //直接寫入一個(gè)int
    raf.writeInt(i);
    
    String s = "你";
    byte[] b = s.getBytes("utf8");
    raf.write(b);
    System.out.println(raf.length());
    
    //讀文件,必須把指針移到頭部
    raf.seek(0);
    //一次性讀取,把文件中的內(nèi)容都讀到字節(jié)數(shù)組中
    byte[] buf = new byte[(int) raf.length()];
    raf.read(buf);
    System.out.println(Arrays.toString(buf));
    for (byte c : buf) {
      System.out.print(Integer.toHexString(c & 0xff) + " ");
    }
    //關(guān)閉文件
    raf.close();
  }

}

  執(zhí)行結(jié)果:

0
1
6
13
[65, 66, 127, -1, -1, -1, 127, -1, -1, -1, -28, -67, -96]
41 42 7f ff ff ff 7f ff ff ff e4 bd a0 

感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

  • 最流行的java后臺(tái)框架spring quartz定時(shí)任務(wù)

    最流行的java后臺(tái)框架spring quartz定時(shí)任務(wù)

    近日項(xiàng)目開發(fā)中需要執(zhí)行一些定時(shí)任務(wù),比如需要在每天凌晨時(shí)候,分析一次前一天的日志信息,借此機(jī)會(huì)整理了一下定時(shí)任務(wù)的幾種實(shí)現(xiàn)方式,由于項(xiàng)目采用spring框架,所以我都將結(jié)合spring框架來介紹
    2015-12-12
  • Mybatis-plus?sql注入及防止sql注入詳解

    Mybatis-plus?sql注入及防止sql注入詳解

    mybatis-plus提供了許多默認(rèn)單表 CRUD 語句,對(duì)于其他SQL情況愛莫能助,下面這篇文章主要給大家介紹了關(guān)于Mybatis-plus?sql注入及防止sql注入的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-10-10
  • 詳解Java數(shù)據(jù)庫連接JDBC基礎(chǔ)知識(shí)(操作數(shù)據(jù)庫:增刪改查)

    詳解Java數(shù)據(jù)庫連接JDBC基礎(chǔ)知識(shí)(操作數(shù)據(jù)庫:增刪改查)

    這篇文章主要介紹了詳解Java數(shù)據(jù)庫連接JDBC基礎(chǔ)知識(shí)(操作數(shù)據(jù)庫:增刪改查),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • Java使用JSONObject需要的6個(gè)jar包下載地址

    Java使用JSONObject需要的6個(gè)jar包下載地址

    這篇文章主要介紹了Java使用JSONObject需要的6個(gè)jar包下載地址,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • Java實(shí)現(xiàn)簡(jiǎn)單修改文件名的方法分析

    Java實(shí)現(xiàn)簡(jiǎn)單修改文件名的方法分析

    這篇文章主要介紹了Java實(shí)現(xiàn)簡(jiǎn)單修改文件名的方法,結(jié)合具體實(shí)例分析了2種比較常用的java文件名修改方法,需要的朋友可以參考下
    2017-09-09
  • 一文帶你深入了解Java的數(shù)據(jù)結(jié)構(gòu)

    一文帶你深入了解Java的數(shù)據(jù)結(jié)構(gòu)

    Java工具包提供了強(qiáng)大的數(shù)據(jù)結(jié)構(gòu)。這篇文章主要為大家詳細(xì)介紹了Java數(shù)據(jù)結(jié)構(gòu)中常用的幾種接口和類,感興趣的小伙伴可以跟隨小編一起了解一下
    2023-05-05
  • springcloud如何配置文件加載順序

    springcloud如何配置文件加載順序

    這篇文章主要介紹了springcloud如何配置文件加載順序問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • springmvc @ResponseStatus和ResponseEntity的使用

    springmvc @ResponseStatus和ResponseEntity的使用

    這篇文章主要介紹了springmvc @ResponseStatus和ResponseEntity的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • mybatis-plus?分頁類型轉(zhuǎn)換工具類

    mybatis-plus?分頁類型轉(zhuǎn)換工具類

    用mybatis-plus?的分頁對(duì)象的時(shí)候,因?yàn)橛胢ybatis-puls?查詢出來的分頁對(duì)象的records里的泛型是實(shí)體,有時(shí)候需要將實(shí)體轉(zhuǎn)換為前端展示的對(duì)象,所有寫了一個(gè)分頁數(shù)據(jù)的類型轉(zhuǎn)換工具,解決這個(gè)問題,對(duì)mybatis-plus?分頁工具類相關(guān)知識(shí)感興趣的朋友一起看看吧
    2022-03-03
  • SpringBoot如何使用@RequestBody進(jìn)行數(shù)據(jù)校驗(yàn)

    SpringBoot如何使用@RequestBody進(jìn)行數(shù)據(jù)校驗(yàn)

    在Web開發(fā)中,前臺(tái)向后臺(tái)發(fā)送數(shù)據(jù)是非常常見的場(chǎng)景,而在SpringBoot框架中,我們通常使用@RequestBody注解來接收前臺(tái)發(fā)送的?JSON數(shù)據(jù),并將其轉(zhuǎn)化為Java對(duì)象,本文將介紹如何在?SpringBoot?中使用?@RequestBody?進(jìn)行數(shù)據(jù)校驗(yàn)
    2023-06-06

最新評(píng)論