关于随机访问文件类RandomAccessFile中write(byte[ ] b)方法的一个疑问

「已注销」 2019-05-13 10:47:53
try {
FileWriter out = new FileWriter(file); // 通过构造方法FileWriter(File file),创建file的文件字符输入流
out.write("abcdefxyijklmn");
out.close();
System.out.println("文件写入成功");
} catch (IOException e) {
System.out.println("文件写入失败");
e.printStackTrace();
return;
}

try {
RandomAccessFile raf = new RandomAccessFile(file,"rw"); // 通过构造方法RandomAccessFile(File file, String mode),以可读可写”rw”的方式创建file的随机访问文件对象
raf.seek(6); // 使用seek(long pos)方法,将raf的读写指针指向字符 'x' ,文件的pos是从0开始的。
raf.write("gh".getBytes());// 使用raf的write(byte[] b)方法,将字符串"gh"替换文件中的"xy"
raf.close();
System.out.println("文件修改成功");
} catch (Exception e) {
System.out.println("文件修改失败");
e.printStackTrace();
return;
}
...全文
203 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
十八道胡同 2019-05-13
  • 打赏
  • 举报
回复
package com.demo;

import java.io.FileWriter;
import java.io.IOException;
import java.io.RandomAccessFile;

public class Java_0_0_13 {

    public static void main(String[] args) {

        String file = "d:\\1.txt";
        try {
            FileWriter out = new FileWriter(file);  //  通过构造方法FileWriter(File file),创建file的文件字符输入流
            out.write("abcdefxyijklmn");
            out.close();
            System.out.println("文件写入成功");
        } catch (IOException e) {
            System.out.println("文件写入失败");
            e.printStackTrace();
            return;
        }

        try {
            RandomAccessFile raf = new RandomAccessFile(file, "rw"); // 通过构造方法RandomAccessFile(File file, String mode),以可读可写”rw”的方式创建file的随机访问文件对象
            raf.seek(6);  // 使用seek(long pos)方法,将raf的读写指针指向字符 'x' ,文件的pos是从0开始的。
            raf.write("gh".getBytes());// 使用raf的write(byte[] b)方法,将字符串"gh"替换文件中的"xy"
            raf.close();
            System.out.println("文件修改成功");
        } catch (Exception e) {
            System.out.println("文件修改失败");
            e.printStackTrace();
            return;
        }

        try {
            RandomAccessFile raf = new RandomAccessFile(file, "rw"); // 通过构造方法RandomAccessFile(File file, String mode),以可读可写”rw”的方式创建file的随机访问文件对象
            String line = raf.readLine();
            line = line.replace("i", "xy");
            System.out.println(line);
            raf.seek(0);
            raf.write(line.getBytes());
            raf.close();
            System.out.println("文件修改成功");
        } catch (Exception e) {
            System.out.println("文件修改失败");
            e.printStackTrace();
            return;
        }
    }


}
「已注销」 2019-05-13
  • 打赏
  • 举报
回复
这是一部分代码,15行的write()方法为什么能做到替换,即最后的结果是a b c d e f g h i j k l m n,若想做到增加,即输出结果是a b c d e f g h x y j k l m n应该怎么做呢

62,634

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧