如何将 JTextArea 拆分为行范围并将它们保存到单独的文件中?

How to split JTextArea to ranges of lines and save them to separate fiels?

我的简单程序从键盘或文本字段获取输入并将其放入 JTextArea,如下所示:

1111,1111;\n
2222,2222;\n
3333,3333;\n
.
.
.
\n

当我输入完数据后,我想将它保存到 txt 文件中,但是有一个条件 - 当超过 30 行时,来自 jtextarea 的数据必须分成更小的 "packages"(每个一个必须只有 30 行(或最后一行更少),并且必须将它们保存到单独的 txt 文件中。每个文件的末尾必须有空行 (\n)。

我知道如何创建文件。

我可以算出我必须从 jtextarea 中拆分数据。

但我不知道如何在第一个 运行 中通过扫描仪读取 1-30 行并将其保存到文件,在第二个 运行 中读取 31-60 并保存等等等

String string = jtextarea.getText() gets all the lines

我也尝试这样的事情:

for (int i=1; i<31; i++)
{
    while(scaner.hasNext())
    pw.println(scaner.nextLine());
}

但它也读取所有行

这也不起作用 - 只给出 30 个字符 - 不是行:

String alltext = jtextare.getText();
String lines = alltext.substring(0, 30);

这个例子我看不懂:

String text = inputArea.getText();
int totalLines = inputArea.getLineCount();
for (int i=0; i < totalLines; i++) {
    int start = inputArea.getLineStartOffset(i);
    int end = inputArea.getLineEndOffset(i);
    String line = text.substring(start, end);

    outputArea.append(line + "\n");
} 

为什么我不能指出行号,只能指出行中的位置。

请帮我解决这个问题 - 你能描述一下正确的循环和命令吗?

问题的简单描述

我有 100 行文本的 jTextArea。每行以 \n.

结尾

我想将这 100 行分成每组 30 行的组,并将每组写入 txt 文件 - 每个 txt 文件将包含 30 行文本(每行以 \n 结尾),最后 (31 ) 行应该是空的。 最简单的方法是什么?

这个有效:

try
{
    Scanner sc = new Scanner(ta.getText());
    String s="";
    for(int i=1; i<=100; i++)
    {
        s+=sc.nextLine()+"\r\n";
        if(i%30==0)
        {
            File f = new File("File"+(i/30)+".txt");
            f.createNewFile();
            BufferedWriter bw = new BufferedWriter(new FileWriter(f));
            bw.write(s);
            bw.close();
            s="";
        }
    }
    File f = new File("File4.txt");
    f.createNewFile();
    BufferedWriter bw = new BufferedWriter(new FileWriter(f));
    bw.write(s);
    bw.close();
}catch(Exception e){}