1. 程式人生 > >Java 檔案的隨機讀寫

Java 檔案的隨機讀寫

Java.io 包提供了 RandomAccessFile 類用於隨機檔案的建立和訪問。使用這個類,可以跳轉到檔案的任意位置讀寫資料。程式可以在隨機檔案中插入資料,而不會破壞該檔案的其他資料。此外,程式也可以更新或刪除先前儲存的資料,而不用重寫整個檔案。

RandomAccessFile類是Object類的直接子類,包含兩個主要的構造方法用來創 建RandomAccessFile 的物件,如表 10-11 所示。

表 10-11 RandomAccessFile 類的構造方法
構造方法 功能描述
public RandomAccessFile(String name, String mode) 指定隨機檔案流物件所對應的檔名,以 mode 表示對檔案的訪問模式
public RandomAccessFile (File file, String mode) 以 file 指定隨機檔案流物件所對應的檔名,以 mode 表示訪問模式

需要注意的是,mode 表示所建立的隨機讀寫檔案的操作狀態,其取值包括:

  • r:表示以只讀方式開啟檔案。
  • rw:表示以讀寫方式開啟檔案,使用該模式只用一個物件即可同時實現讀寫操作。

表 10-12 列出了 RandowAccessFile 類常用的方法及說明。

表 10-12 RandowAccessFile 的常用方法
方法 功能描述
long length() 返回檔案長度
void seek(long pos) 移動檔案位置指示器,pos 指定從檔案開頭的偏離位元組數
int skipBytes(int n) 跳過 n 個位元組,返回數為實際跳過的位元組數
int read() 從檔案中讀取一個位元組,位元組的高 24 位為 0,若遇到檔案結尾,返回-1
final byte readByte() 從檔案中讀取帶符號的位元組值
final char readChar() 從檔案中讀取一個 Unicode 字元
final void writeChar(inte c) 寫入一個字元,兩個位元組

【例 10-12】模仿系統日誌,將資料寫入到檔案尾部。
//********** ep10_12.java **********
import java.io.*;
class ep10_12{
public static void main(String args[]) throws IOException{
try{
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
String s=in.readLine();
RandomAccessFile myFile=new RandomAccessFile(“ep10_12.log”,”rw”);
myFile.seek(myFile.length());  //移動到檔案結尾
myFile.writeBytes(s+”\n”);  //寫入資料
myFile.close();
}
catch(IOException e){}
}
}
程式執行後在目錄中建立一個 ep10_12.log 的檔案,每次執行時輸入的內容都會在該檔案內容的結尾處新增。

相關推薦

Java 檔案隨機流 RandomAccessFile

一.簡述 1、是JAVA I/O流體系中功能最豐富的檔案內容訪問類,它提供了眾多方法來訪問檔案內容。 2、由於可以自由訪問檔案的任意位置,所以如果需要訪問檔案的部分內容,RandomAccessFile將是更好的選擇。 3、可以用來訪問儲存資料記錄的檔案,檔案的記錄的大

Java 實現檔案隨機-RandomAccessFile

1.介紹 現有如下的一個需求,向已存在1G資料的txt文本里末尾追加一行文字,內容如下“Lucene是一款非常優秀的全文檢索庫”。可能大多數朋友會覺得這個需求很easy,說實話,確實easy,然後XXX君開始實現了,直接使用Java中的流讀取了txt文本里原來

java RandomAccessFile隨機

Java的RandomAccessFile提供對檔案的讀寫功能,與普通的輸入輸出流不一樣的是RamdomAccessFile可以任意的訪問檔案的任何地方。這就是“Random”的意義所在。 RandomAccessFile的物件包含一個記錄指標,用於標識當前流的讀寫位置,

關於用檔案隨機

 //--------------------------------------------------------------------------- #include <vcl.h>#pragma hdrstop#include<stdio.h>

從零開始學C++之IO流類庫(三):檔案、二進位制檔案檔案隨機

#include <cassert>#include <iostream>#include <fstream>#include <string>using namespace std;struct Test {     int a;     int b; };i

java中的隨機檔案RandomAccessFile

java中的隨機讀寫檔案: RandomAccessFile raf = new RandomAccessFile(“test.dat”,“rw”); 1.raf.write();這個方法是寫入檔案一個位元組    raf.read();這個方法是讀取檔案一個位

Java 檔案IO隨機RandomAccessFile

目錄 前言 RandomAccessFile優勢: 新增 任意位置插入 擴充套件 前言 在一個文字檔案的結尾新增一些資料,仔細一聽。這個問題很是簡單。先把資料讀出來,然後再修改讀出的資料,再把它寫進檔案。咋一看,還真是那麼簡單。但是如果檔案由1個G大小,勉

Java 檔案隨機

Java.io 包提供了 RandomAccessFile 類用於隨機檔案的建立和訪問。使用這個類,可以跳轉到檔案的任意位置讀寫資料。程式可以在隨機檔案中插入資料,而不會破壞該檔案的其他資料。此外,程式也可以更新或刪除先前儲存的資料,而不用重寫整個檔案。 RandomAcc

Java IO流之普通檔案流和隨機流區別

普通檔案流和隨機讀寫流區別 FileInputStream和FileOutputStream FileReader和FileWriter RandomAccessFile 兩者區別:

Java IO操作——簡單瞭解RandomAccessFile隨機檔案操作類的使用

學習目標 掌握RandomAccessFile類的作用 可以使用RandomAccessFile讀取指定位置的資料 RandomAccessFile類的主要功能是完成隨機讀取功能,可以讀取指定位置的

Java 實現文件隨機-RandomAccessFile

randomaccessfile類RandomAccessFile是Java中輸入,輸出流體系中功能最豐富的文件內容訪問類,它提供很多方法來操作文件,包括讀寫支持,與普通的IO流相比,它最大的特別之處就是支持任意訪問的方式,程序可以直接跳到任意地方來讀寫數據。如果我們只希望訪問文件的部分內容,而不是把文件從頭

java使用FileUtils 對json檔案進行

package com.dl.utils; import java.io.File; import java.io.IOException; import org.apache.commons.io.FileUtils; public class GetPutItems { //寫

Java專案中檔案

1.讀取檔案 InputStream input;//輸入流 InputStreamReader isr = null; BufferedReader br = null; //用於包裝InputStreamReader,提高處理效能。因為

java 使用 NIO 檔案

public static void Readnio() { RandomAccessFile randomAccessFile = null; FileChannel fileChannel = null; try {

Java:簡單的XML檔案之使用DOM4J

Dom4J方式解析XML檔案。dom4j是非官方提供的xml檔案解析方式,因此需要去第三方下載dom4j的jar包 File file = new File("D:\\chengmuzhe\\java\\JavaOOP6.0\\students.xml"); SAXReader reader = n

JAVA四則運算(檔案

完成時間:17:10 package 四則運算試題; import java.io.BufferedReader; import java.io.PrintStream; import java.util.Scanner; import java.io.FileReader; import java

java 檔案的IO

直接上程式碼: 1,寫檔案 import java.io.FileWriter; import java.io.IOException; //需求:將一些文字儲存到硬碟一個檔案中。 public class FileWriterDemo { private static fina

C語言檔案隨機

C語言檔案的隨機讀寫 檔案順序讀寫,即讀寫檔案只能從頭開始,依次讀寫各個資料。但在實際開發中經常需要讀寫檔案的中間部分,要解決這個問題,就得先移動檔案內部的位置指標,再進行讀寫。這種讀寫方式稱為隨機讀寫,也就是說從檔案的任意位置開始讀寫。 實現隨機讀寫的關鍵是要按要求移動位置指標,這稱為

java 按位元組二進位制檔案(Base64編碼解碼)

最近在做專案時遇到這樣一個需求:依次讀取本地資料夾裡所有檔案的內容,轉為JSON,傳送到ActiveMQ的訊息佇列, 然後從MQ的訊息佇列上獲取檔案的資訊,依次寫到本地。常見的檔案型別,比如.txt 和.png等檔案的讀寫並不難。但是,我剛才所提到的需求,如果用常規的方法去讀寫,比如按位元組讀取檔案內容

Java使用RandomAccessFile檔案

Java RandomAccessFile RandomAccessFile是用來訪問那些儲存資料記錄的檔案的,你就可以用seek( )方法來訪問記錄,並進行讀寫了。這些記錄的大小不必相同;但是其大小和位置必須是可知的。但是該類僅限於操作檔案。 Ra