Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
二进制文件的Java列表迭代器-问题_Java_Debugging_Iterator - Fatal编程技术网

二进制文件的Java列表迭代器-问题

二进制文件的Java列表迭代器-问题,java,debugging,iterator,Java,Debugging,Iterator,给定用户指定的某个位置,是否可以遍历二进制文件?我一直在想办法,但我没有找到任何线索。以下是我正在编写的代码: System.out.println("Enter name of file: "); String filename = in.nextLine(); File file = new File(filename); if (file.exists()) { System.out.println(file.getAbsoluteFile());

给定用户指定的某个位置,是否可以遍历二进制文件?我一直在想办法,但我没有找到任何线索。以下是我正在编写的代码:

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());
        }
        System.out.print("Enter byte positon to navigate to: ");
        long pos = in.nextLong();
        in.nextLine();
        ListIterator<Byte> itr = fileList.listIterator(0);
        if (pos >= 0 && pos < file.length()){
        int i = 0;
        while(i < 5 && itr.hasNext() == true){
            raf.seek(pos);
            byte b = raf.readByte();
            System.out.print(((b >= 0 && b <= 15)?"0":"") + Integer.toHexString((int)b & 0x00FF) + " ");
            i++;
        }
System.out.println(“输入文件名:”);
字符串filename=in.nextLine();
文件=新文件(文件名);
if(file.exists()){
System.out.println(file.getAbsoluteFile());
RandomAccessFile raf=新的RandomAccessFile(文件“r”);
System.out.println(“大小:“+file.length()+”字节”);
System.out.println(“试图将文件记录到列表”);
AList fileList=新的AList();
raf.seek(0);
对于(int i=0;i=0&&posSystem.out.print((b>=0&&b您可以将读取文件的循环修改为a)忽略到请求的开始位置的字节,b)读取并打印接下来读取的5个字节,然后c)退出。

我当然可以,但是我以后必须对文件进行修改,而且我还必须在用户指定起始位置之前打印5个字节。我也必须使用迭代器来完成。我是否可以这样做?您应该引用问题中的所有约束条件。在e“start”很简单(只需忽略第一个start-5字节)。不需要迭代器;任何迭代器的使用都会使工作繁忙(例如,将要打印的字节放入列表中,然后迭代以打印它们).AList是您编写的类吗?是的,AList是我编写的类。我假设它实现了
java.util.List
接口,根据您发布的代码,列表中的每个元素都是文件中的一个字节。那么,为什么不使用interface
List
的方法来处理列表呢?我该怎么做呢?我不完全确定如何使用已实现的方法构造循环。您是否看到过这个问题: