Java 读取文本文件并创建一个';第'页;每7行

Java 读取文本文件并创建一个';第'页;每7行,java,arrays,file,text,Java,Arrays,File,Text,我怎样才能完成上述任务?我一直在尝试将页面分成不同的数组,但是失败了 按请求编码(甚至不接近工作状态) inta=1;int b=5; 文件夹=新文件(“c:/files”); File[]listOfFiles=folder.listFiles(); 字符串[]第1页=新字符串[7]; 字符串[]第2页=新字符串[7]; 字符串[]第3页=新字符串[7]; 字符串[]第4页=新字符串[7]; 字符串[]第5页=新字符串[7]; 字符串[]第6页=新字符串[7]; int c=0; 对于(int

我怎样才能完成上述任务?我一直在尝试将页面分成不同的数组,但是失败了

按请求编码(甚至不接近工作状态)

inta=1;int b=5;
文件夹=新文件(“c:/files”);
File[]listOfFiles=folder.listFiles();
字符串[]第1页=新字符串[7];
字符串[]第2页=新字符串[7];
字符串[]第3页=新字符串[7];
字符串[]第4页=新字符串[7];
字符串[]第5页=新字符串[7];
字符串[]第6页=新字符串[7];
int c=0;

对于(int i=0;i=0&&i=8&&i=16&&i=24&&i=32&&i您的代码无法工作,因为当您执行
page2[i]=xxx
,名为
i
的变量的值应介于0和6之间,其值从8到15。对于其他页面也是如此。即使page1也会失败,因为您使用的最后一个索引是7,不在0-6范围内

尝试以下方法:

for (int i=0; i<listOfFiles.length; i++)
{
    if(i>=0 && i<7)
    {
        page1[i] = listOfFiles[i].getName();
    }
    else if(i>=7 && i<15)
    {
        page2[i-7] = listOfFiles[i].getName();
    }
    else if(i>=16 && i<23)
    {
        page3[i-16] = listOfFiles[i].getName();
    }
    ...
}
您还可以使用Java集合来进一步简化代码;

这可能会帮助您:

  • 使用

我知道这一点。这就是为什么我要求一种新的方法来做这件事。我意识到了错误,并且知道我需要一种不同的方法。编辑以添加一些代码(可能有bug,但你明白了)
for (int i=0; i<listOfFiles.length; i++)
{
    if(i>=0 && i<7)
    {
        page1[i] = listOfFiles[i].getName();
    }
    else if(i>=7 && i<15)
    {
        page2[i-7] = listOfFiles[i].getName();
    }
    else if(i>=16 && i<23)
    {
        page3[i-16] = listOfFiles[i].getName();
    }
    ...
}
int NUM_PAGES = 7;
File folder = new File("c:/files");
File[] listOfFiles = folder.listFiles();

String[][] pages = new String[NUM_PAGES][listOfFiles.length/NUMPAGES];
for (int i=0; i<listOfFiles.length; i++) {
    int currentPage = i % 7;
    int currentPosition = pages[currentPage].length;
    pages[currentPage][currentPosition] = listOfFiles[i].getName();
}