二进制文件问题的数组列表迭代器

时间:2020-02-12 16:25:38

标签: java iterator hex

当前,我正在用Java编写一个基本的十六进制编辑器。我完成的部分如下:

用户在要加载的二进制文件中键入要导航到的字节位置。它首先读取文件,然后使用AList进行存储。这是代码:

System.out.println("Enter name of file: ");
    String filename = in.nextLine();
    File file = new File(filename);
    if (file.exists()) {
        System.out.println(file.getAbsoluteFile());
        RandomAccessFile raf = new RandomAccessFile(file, "r");
        System.out.println("Size: " + file.length() + " bytes.");
        System.out.println("Attempting to record file to AList");
        AList<Byte> fileList = new AList<>(); 
        raf.seek(0);
        for (int i = 0; i < raf.length(); i++) {
            fileList.add(raf.readByte());
        }

现在,我的要求还告诉我在用户指定的位置之前给出前5个字节,在之后给出5个字节。我认为就询问用户所需的字节位置而言,我的逻辑是正确的,但我不确定。这是我到目前为止的代码:

System.out.print("Enter byte positon to navigate to: ");
        long pos = in.nextLong();
        in.nextLine();
        ListIterator<Byte> itr = fileList.listIterator(0);
        int i = 0;

所以这应该做的是取用户指定的字节位置并存储它。

问题

我不确定如何遍历此文件。我想让迭代器从用户指定的位置开始,然后构造两个循环,分别对上一个(5次)和下一个(5次)进行调用,但是我不确定如何做到这一点。谁能给我一个从哪里开始构建我的代码部分的想法?如果有任何问题,请随时告诉我,如果您想要更多的代码,我可以很乐意提供:)。

0 个答案:

没有答案