File RandomAccessFile读写

  1 package com.javaio.study;
  2
  3 import java.io.File;
  4 import java.io.FileNotFoundException;
  5 import java.io.IOException;
  6 import java.io.RandomAccessFile;
  7 import java.util.Arrays;
  8
  9 /**
 10  * 使用RandomAccessFile对文件进行读写操作
 11  * @author chen
 12  *
 13  */
 14 public class Raf {
 15
 16     /**
 17      * 创建新文件
 18      * @return
 19      * @throws IOException
 20      */
 21     private File createFile() throws IOException{
 22
 23         File file = null;
 24         File demo = new File("demo");
 25         if(!demo.exists()){
 26             demo.mkdir();
 27         }
 28         file = new File(demo, "raf.dat");
 29         if(!file.exists()){
 30             file.createNewFile();
 31         }
 32         return file;
 33
 34     }
 35
 36     /**
 37      * 使用RandomAccessFile写文件
 38      * @param file
 39      * @throws IOException
 40      */
 41     private void rafWrite(File file) throws IOException{
 42
 43         if(file != null && file.exists()){
 44
 45             RandomAccessFile raf = new RandomAccessFile(file, "rw");//以读写的方式打开文件
 46             //指针的文职
 47             System.out.println(raf.getFilePointer());
 48             raf.write(‘A‘);//只写了一个字节
 49             System.out.println(raf.getFilePointer());
 50             raf.write(‘B‘);
 51             System.out.println(raf.getFilePointer());
 52
 53             int i = 0x7fffffff;
 54             //用write方法每次只写一个字节,如果要把i写进去就要写4次
 55             raf.write(i >>> 24);//高8位
 56             raf.write(i >>> 16);
 57             raf.write(i >>> 8);
 58             raf.write(i);
 59             System.out.println(raf.getFilePointer());
 60
 61             //可以直接写一个int
 62             raf.writeInt(i);
 63
 64             String s = "中";
 65             byte[] gbk = s.getBytes("UTF-8");
 66             raf.write(gbk);
 67             System.out.println(raf.length());
 68
 69             raf.close();//关闭
 70         }
 71
 72     }
 73
 74     /**
 75      * 使用RandomAccessFile读文件
 76      * @param file
 77      * @throws IOException
 78      */
 79     private void rafReader(File file) throws IOException{
 80
 81         if(file != null && file.exists()){
 82
 83             RandomAccessFile raf = new RandomAccessFile(file, "rw");//以读写的方式打开文件
 84             //读文件,必须把指针移到头部
 85             raf.seek(0);
 86             //一次性读取,把文件中的内容都读到字节数组中
 87             byte[] buf = new byte[(int)raf.length()];
 88             raf.read(buf);
 89             System.out.println(Arrays.toString(buf));
 90
 91             String s = new String(buf, "UTF-8");
 92             System.out.println(s);
 93
 94             for(byte b: buf){
 95                 System.out.print(Integer.toHexString(b & 0xff) + " ");
 96             }
 97
 98             raf.close();//关闭
 99         }
100
101     }
102
103     public static void main(String[] args) throws IOException {
104
105         Raf raf = new Raf();
106         File file = raf.createFile();
107         raf.rafWrite(file);
108         raf.rafReader(file);
109
110     }
111
112 }

参考:慕课网(http://www.imooc.com)

时间: 2024-10-11 04:20:05

File RandomAccessFile读写的相关文章

01.使用File类读写文件

使用File类去读数据: 方法一:使用ReadAllBytes(); 方法 namespace _01.使用File类读写数据01 { class Program { static void Main(string[] args) { string path = @"C:\Users\zyj\Desktop\.NET base\0505.Net基础班第十二天\抽象类特点.txt"; byte[] b1=File.ReadAllBytes(path); //我们将读取的到的字节数组数据转

使用RandomAccessFile读写数据

------------siwuxie095 工程名:TestRandomAccessFile 包名:com.siwuxie095.file 类名:MultiWriteFile.java(主类).WriteFile.java 工程结构目录如下: WriteFile.java: package com.siwuxie095.file; import java.io.File; import java.io.FileNotFoundException; import java.io.IOExcept

java中的File文件读写操作

之前有好几次碰到文件操作方面的问题,大都因为时间太赶而没有好好花时间去仔细的研究研究,每次都是在百度或者博客或者论坛里面参照着大牛们写的步骤照搬过来,之后再次碰到又忘记了,刚好今天比较清闲,于是就在网上找了找Java常用的file文件操作方面的资料.之后加以一番整理,现分享给大家. 直接上源码吧. package com.file; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundEx

Python file 文件读写

需要自己创建好 test_file 文件及内容. 1 #!/usr/bin/env python3 2 # -*- coding: utf-8 -*- 3 4 ''' 5 #写是重新生成一个新的文件,如果用同名文件会将原来的文件内容清空,请注意 6 file = open('test_file', mode='w', encoding='utf-8') 7 file.write("ceshi neirong") 8 file.close() 9 10 #追加内容 a 是append的简

IO-文件 File 复制 读写 总结

一定要注意: 传入的参数,应该是包含文件名的完整路径名,不能把一个文件复制到[文件夹]中,因为[文件夹]本身是不能有输入输出流的,只能复制到一个[文件]中,否则会报异常. 以字节流读写的三种方式 public class Test {     private static final String FILE_PATH = "e:\\";     private static final String FILE_TYPE = ".exe";     private s

File操作-RandomAccessFile

一.知识点笔记 1. 文件操作——RandomAccessFile 1. 创建对象 Java提供了一个可以对文件随机访问的操作,访问包括读和写操作.该类名为RandomAccessFile.该类的读写是基于指针的操作. 1.1.2. 只读模式 RandomAccessFile在对文件进行随机访问操作时有两个模式,分别为只读模式(只读取文件数据),和读写模式(对文件数据进行读写). 只读模式: 在创建RandomAccessFile时,其提供的构造方法要求我们传入访问模式: RandomAcces

RandomAccessFile 文件读写中文乱码解决方案!

RandomAccessFile 读写文件时,不管文件中保存的数据编码格式是什么   使用 RandomAccessFile对象方法的 readLine() 都会将编码格式转换成 ISO-8859-1 所以 输出显示是还要在进行一次转码 例子: package fileReadAndWrite; import java.io.FileNotFoundException; import java.io.IOException; import java.io.RandomAccessFile; /*

RandomAccessFile

RandomAccessFile public class RandomAccessFile extends Object implements DataOutput, DataInput, Closeable 随机访问文件类最大的特点是可以随机访问文件,对指定的文件位置进行读写 此类的实例支持对随机访问文件的读取和写入.随机访问文件的行为类似存储在文件系统中的一个大型 byte 数组.存在指向该隐含数组的光标或索引,称为文件指针: 输入操作从文件指针开始读取字节,并随着对字节的读取而前移此文件

文件操作——RandomAccessFile

  文件操作——RandomAccessFile 构建RandomAccessFileJava提供了一个可以对文件随机访问的操作,访问包括读和写操作.该类名为RandomAccessFile.该类的读写是基于指针的操作.1. 只读模式 RandomAccessFile在对文件进行随机访问操作时有两个模式,分别为只读模式(只读取文件数据),和读写模式(对文件数据进行读写).只读模式:在创建RandomAccessFile时,其提供的构造方法要求我们传入访问模式:RandomAccessFile(F