激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - Java教程 - Java RandomAccessFile 指定位置實現(xiàn)文件讀取與寫入

Java RandomAccessFile 指定位置實現(xiàn)文件讀取與寫入

2020-07-21 12:25java教程網(wǎng) Java教程

這篇文章主要介紹了Java RandomAccessFile 指定位置實現(xiàn)文件讀取與寫入的相關(guān)資料,需要的朋友可以參考下

Java RandomAccessFile 指定位置實現(xiàn)文件讀取與寫入

RandomAccessFile是屬于隨機讀取類,是可以對文件本身的內(nèi)容直接隨機進行操作的,可以在文件的指定位置的讀取和寫入內(nèi)容,這在很多時候都是很方便的。

RandomAccessFile是用來訪問那些保存數(shù)據(jù)記錄的文件的,你就可以用seek( )方法來訪問記錄,并進行讀寫了。這些記錄的大小不必相同;但是其大小和位置必須是可知的。但是該類僅限于操作文件。

RandomAccessFile不屬于InputStream和OutputStream類系的。實際上,除了實現(xiàn)DataInput和 DataOutput接口之外(DataInputStream和DataOutputStream也實現(xiàn)了這兩個接口),它和這兩個類系毫不相干,甚至不使用InputStream和OutputStream類中已經(jīng)存在的任何功能;它是一個完全獨立的類,所有方法(絕大多數(shù)都只屬于它自己)都是從零開始寫的。這可能是因為RandomAccessFile能在文件里面前后移動,所以它的行為與其它的I/O類有些根本性的不同。總而言之,它是一個直接繼承Object的,獨立的類。

基本上,RandomAccessFile的工作方式是,把DataInputStream和DataOutputStream結(jié)合起來,再加上它自己的一些方法,比如定位用的getFilePointer( ),在文件里移動用的seek( ),以及判斷文件大小的length( )、skipBytes()跳過多少字節(jié)數(shù)。此外,它的構(gòu)造函數(shù)還要一個表示以只讀方式("r"),還是以讀寫方式("rw")打開文件的參數(shù) (和C的fopen( )一模一樣)。它不支持只寫文件。

只有RandomAccessFile才有seek搜尋方法,而這個方法也只適用于文件。BufferedInputStream有一個mark( )方法,你可以用它來設(shè)定標(biāo)記(把結(jié)果保存在一個內(nèi)部變量里),然后再調(diào)用reset( )返回這個位置,但是它的功能太弱了,而且也不怎么實用。

實例代碼:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import java.io.IOException;
import java.io.RandomAccessFile;
 
/**
 * RandomAccessFile是屬于隨機讀取類,是可以對文件本身的內(nèi)容直接隨機進行操作的,就是說可以指定位置
 * 的讀取和寫入內(nèi)容
 * @author andy
 *
 */
public class RandomAccessFileTest {
 
 public static void main(String args[]) throws IOException {
 write();
 read();
 }
 
 public static void write() throws IOException {
 //以讀寫的方式來訪問該文件
 RandomAccessFile raf = new RandomAccessFile("D:\\test.txt", "rw");
 raf.writeBytes("Hello World!");
 raf.writeBoolean(true);
 raf.writeInt(30);
 raf.writeDouble(3.56);
 raf.close();
 }
 
 public static void read() throws IOException {
 RandomAccessFile raf = new RandomAccessFile("D:\\test.txt", "r");
 raf.seek(12);//設(shè)置指針的位置
 boolean booleanValue = raf.readBoolean();
 int intValue = raf.readInt();
 double doubleValue = raf.readDouble();
 raf.seek(0);//設(shè)置指針的位置為文件的開始部分
 byte[] bytes = new byte[12];
 for (int i=0; i<bytes.length; i++)
  bytes[i] = raf.readByte();//每次讀一個字節(jié),并把它賦值給字節(jié)bytes[i]
 String stringValue = new String(bytes);
 raf.skipBytes(1);//指針跳過一個字節(jié)
 int intValue2 = raf.readInt();
 raf.close();
 System.out.println(booleanValue);
 System.out.println(intValue);
 System.out.println(doubleValue);
 System.out.println(stringValue);
 System.out.println(intValue2);
 }
 
}

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

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25
主站蜘蛛池模板: 蜜桃久久一区二区三区 | 精品在线视频播放 | 亚洲电影免费观看国语版 | 蜜桃视频日韩 | 久久一区二区三区av | 爽毛片 | 久久久久久久久久久影视 | 久久免费视频精品 | 国产精品亚洲一区二区三区在线观看 | 国产一级在线观看视频 | 精品国产一区在线观看 | 想要xx在线观看 | 欧美精品日日鲁夜夜添 | 久久国产精品久久久久 | 国产午夜精品视频免费不卡69堂 | 日本aⅴ在线 | 深夜福利久久久 | 中文字幕综合 | 99久久精品免费看国产小宝寻花 | 午夜a狂野欧美一区二区 | av在线等| 精品国产乱码一区二区 | 电影91 | 五月天堂婷婷 | 美国一级黄色毛片 | 免费a视频在线观看 | 成人爱爱电影 | 成年人观看免费视频 | 日本免费aaa观看 | 黄色试看视频 | 污黄视频在线播放 | 久久精品欧美一区二区三区不卡 | 叉逼视频| 免费观看欧美一级片 | 欧美日韩亚洲一区二区三区 | 国产91丝袜在线播放 | av在线视| 欧美日韩在线播放一区 | 中国精品久久 | 免费一级毛片在线播放视频 | 永久免费不卡在线观看黄网站 |