时间:2021-07-01 10:21:17 帮助过:30人阅读
RandomAccessFile主要用于文件内容的读写访问
2.访问模式
“r”:只读方式。
“rw”:打开以便读取和访问,如果文件不存在则创建文件。
“rws”: 除了‘rw‘功能以外,文件内容或者元数据更新时一同写入。
“rwd”:除了‘rw‘功能以外,文件内容更新时一同写入。
3.使用案例
- <span style="color: #0000ff">package</span><span style="color: #000000"> test;
- </span><span style="color: #0000ff">import</span><span style="color: #000000"> java.io.File;
- </span><span style="color: #0000ff">import</span><span style="color: #000000"> java.io.FileNotFoundException;
- </span><span style="color: #0000ff">import</span><span style="color: #000000"> java.io.IOException;
- </span><span style="color: #0000ff">import</span><span style="color: #000000"> java.io.RandomAccessFile;
- </span><span style="color: #0000ff">public</span> <span style="color: #0000ff">class</span><span style="color: #000000"> RandomAccess {
- </span><span style="color: #0000ff">public</span> <span style="color: #0000ff">static</span> <span style="color: #0000ff">void</span><span style="color: #000000"> main(String[] args) {
- </span><span style="color: #0000ff">try</span><span style="color: #000000"> {
- File file </span>= <span style="color: #0000ff">new</span> File("C:\\img\\666.txt"<span style="color: #000000">);
- </span><span style="color: #008000">//</span><span style="color: #008000">打开文件</span>
- RandomAccessFile randomAccess = <span style="color: #0000ff">new</span> RandomAccessFile(file,"rwd"); <span style="color: #008000">//</span><span style="color: #008000">访问文件 </span>
- Long lenth = randomAccess.length(); <span style="color: #008000">//</span><span style="color: #008000">获取文件长度</span>
- System.out.println("lenth:"+<span style="color: #000000">lenth);
- randomAccess.seek(</span>4); <span style="color: #008000">//</span><span style="color: #008000">设置指针位置
- </span><span style="color: #008000">//</span><span style="color: #008000">读取文件</span>
- <span style="color: #0000ff">int</span> c = randomAccess.read(); <span style="color: #008000">//</span><span style="color: #008000">读取一个字节</span>
- System.out.println("c:"+<span style="color: #000000">c);
- System.out.println(</span>"c:"+(<span style="color: #0000ff">char</span>)c); <span style="color: #008000">//</span><span style="color: #008000">转换为字符</span>
- <span style="color: #0000ff">byte</span>[] b = <span style="color: #0000ff">new</span> <span style="color: #0000ff">byte</span>[3]; <span style="color: #008000">//</span><span style="color: #008000">读取字节数字,创建数组</span>
- randomAccess.read(b, 1, 2); <span style="color: #008000">//</span><span style="color: #008000">从指针1处读取两个字节写入数组b中</span>
- String s = <span style="color: #0000ff">new</span> String(b); <span style="color: #008000">//</span><span style="color: #008000">转换为字符串</span>
- System.out.println("byte:"+s); <span style="color: #008000">//</span><span style="color: #008000">输出
- </span><span style="color: #008000">//</span><span style="color: #008000">写入文件</span>
- File file2 = <span style="color: #0000ff">new</span> File("C:\\img\\777.txt"<span style="color: #000000">);
- </span><span style="color: #0000ff">if</span>(!<span style="color: #000000">file2.getParentFile().exists()){
- file2.getParentFile().mkdirs();
- }
- file2.createNewFile();
- RandomAccessFile randomAccess2 </span>= <span style="color: #0000ff">new</span> RandomAccessFile(file2,"rwd"); <span style="color: #008000">//</span><span style="color: #008000">访问文件 </span>
- randomAccess2.write(b); <span style="color: #008000">//</span><span style="color: #008000">写入字符数组
- </span><span style="color: #008000">//</span><span style="color: #008000">关闭文件</span>
- <span style="color: #000000"> randomAccess.close();
- randomAccess2.close();
- } </span><span style="color: #0000ff">catch</span><span style="color: #000000"> (FileNotFoundException e) {
- </span><span style="color: #008000">//</span><span style="color: #008000"> TODO Auto-generated catch block</span>
- <span style="color: #000000"> e.printStackTrace();
- } </span><span style="color: #0000ff">catch</span><span style="color: #000000"> (IOException e) {
- </span><span style="color: #008000">//</span><span style="color: #008000"> TODO Auto-generated catch block</span>
- <span style="color: #000000"> e.printStackTrace();
- }
- }
- }</span>
Java 核心编程——文件随机读写类(RandomAccessFile)
标签:打开 核心编程 内容 catch create and auto long 创建文件