当前位置:Gxlcms > 数据库问题 > Java I/O---RandomAccessFile类(随机访问文件的读取和写入)

Java I/O---RandomAccessFile类(随机访问文件的读取和写入)

时间:2021-07-01 10:21:17 帮助过:10人阅读

      通常,如果此类中的所有读取例程在读取所需数量的字节之前已到达文件末尾,则抛出 EOFException(是一种 IOException)。如果由于某些原因无法读取任何字节,而不是在读取所需数量的字节之前已到达文件末尾,则抛出 IOException,而不是 EOFException。需要特别指出的是,如果流已被关闭,则可能抛出 IOException。

技术分享图片

技术分享图片

技术分享图片

2.RandomAccessFile演示

  1 public class RandomAccessFileDemo {
  2 
  3 	/**
  4 	 * @代码来自传智播客
  5 	 * @param args
  6 	 * @throws IOException
  7 	 */
  8 	public static void main(String[] args) throws IOException {
  9 
 10 
 11 		/*
 12 		 * RandomAccessFile:
 13 		 * 特点:
 14 		 * 1,只能操作文件。
 15 		 * 2,既能读,又能写。
 16 		 * 3,维护了一个byte数组。内部定义了字节流的读取和写入。
 17 		 * 4,通过对指针的操作可以实现对文件的任意位置的读取和写入。
 18 		 */
 19 
 20 
 21 //		writeFile();
 22 		readFile();
 23 	}
 24 
 25 	public static void readFile() throws IOException {
 26 
 27 		RandomAccessFile raf = new RandomAccessFile("tempfile\\random.txt", "r");
 28 
 29 		//随机读取,只要通过设置指针的位置即可。
 30 		raf.seek(8*1);
 31 
 32 		byte[] buf = new byte[4];
 33 		raf.read(buf);
 34 		String name = new String(buf);
 35 
 36 		int age = raf.readInt();
 37 
 38 		System.out.println(name+":"+age);
 39 
 40 		raf.close();
 41 
 42 
 43 
 44 	}
 45 
 46 	public static void writeFile() throws IOException {
 47 
 48 		//1,创建一个随机访问文件的对象。文件不存在,则创建,存在,则不创建不覆盖。
 49 		RandomAccessFile raf = new RandomAccessFile("tempfile\\random.txt", "rw");
 50 
 51 		//2,写入姓名和年龄。
 52 //		raf.write("张三".getBytes());
 53 //		raf.writeInt(97);//保证整数的字节原样性。
 54 //		raf.write("李四".getBytes());
 55 //		raf.writeInt(99);//保证整数的字节原样性。
 56 
 57 		//3,随机写入。
 58 		raf.seek(8);//设置指针的位置。
 59 		raf.write("王武".getBytes());
 60 		raf.writeInt(100);
 61 		System.out.println(raf.getFilePointer());
 62 
 63 		raf.close();
 64 
 65 
 66 	}
 67 
 68 }

2017-12-31 内容来自API和传智播客

  

Java I/O---RandomAccessFile类(随机访问文件的读取和写入)

标签:image   info   技术   read   out   特点   存储   throw   order   

人气教程排行