Java 如何跳过文件的一部分,然后读取一行?

Java 如何跳过文件的一部分,然后读取一行?,java,file,split,bufferedreader,Java,File,Split,Bufferedreader,我有一个使用缓冲读取器和拆分读取文件的代码,该文件是通过一种方法创建的,该方法会自动在文件开头添加4KB的空白空间,这导致我读取时发生以下情况: 首先是守则: BufferedReader metaRead = new BufferedReader(new FileReader(metaFile)); String metaLine = ""; String [] metaData = new String [100000]; while ((metaLine = metaRe

我有一个使用缓冲读取器和拆分读取文件的代码,该文件是通过一种方法创建的,该方法会自动在文件开头添加4KB的空白空间,这导致我读取时发生以下情况:

首先是守则:

BufferedReader metaRead = new BufferedReader(new FileReader(metaFile));
String metaLine = "";
String [] metaData = new String [100000];

        while ((metaLine = metaRead.readLine()) != null){
            metaData = metaLine.split(",");
            for (int i = 0; i < metaData.length; i++){
                System.out.println(metaData[i]);
        }
        }

有没有办法跳过前4096个空格,直接得到文件中的实际值,这样我就可以定期得到结果?因为稍后我将在其他操作中使用元数据数组,而且我非常确定这些空间会弄乱数组中的插槽数量。如有任何建议,将不胜感激

如果您使用的是Eclipse,自动完成应该会有所帮助

metaRead.skip(4096);

您可以(如上所述)简单地执行以下操作:

metaRead.skip(4096)

如果空格总是占用那么多字符,或者您可以避免使用空行

while ((metaLine = metaRead.readLine()) != null){
    if(metaLine.trim().length() > 0){
        metaData = metaLine.split(",");
        for (int i = 0; i < metaData.length; i++){
            System.out.println(metaData[i]);
        }
    }
}
while((metaLine=metaRead.readLine())!=null){
如果(metaLine.trim().length()>0){
元数据=metaLine.split(“,”);
for(int i=0;i
您是否考虑过,呃,
BufferedReader.skip()
?为什么不修复文件创建以消除无意义的4K空间?而不是建立合作伙伴?我可能误解了你的问题。你想跳过4096个空格,而不是字节?同样的事情,
Reader.skip()
跳过字符。我的意思是,如果他有一堆字符,其中一些是字母、数字等,他想跳过4096个空格,那么这就行不通了。但我想4096是一个很大的线索。
while ((metaLine = metaRead.readLine()) != null){
    if(metaLine.trim().length() > 0){
        metaData = metaLine.split(",");
        for (int i = 0; i < metaData.length; i++){
            System.out.println(metaData[i]);
        }
    }
}