为什么将字符串变为空?

时间:2019-01-12 23:25:43

标签: java

如果我运行此代码,append.txt的前28行充满数字,但随后为空,为什么?它也应该包含一些数字! 琴弦太大吗?

    try {
        OutputStream os = new FileOutputStream(new File("append.txt"), true);
        String seq = "11", output = "";
        int u = 1;
        while(u<=37) 
        {
            String temp = "";
            int iter = 1;
            for(int i=0; i<seq.length()-1; i++) {
                if(seq.charAt(i)==seq.charAt(i+1)) {
                    iter++;
                    if(i==seq.length()-2) {
                        temp += iter + "" + seq.charAt(i);
                        iter=1;
                    }
                }else {
                    temp += iter + "" + seq.charAt(i);
                    if(i==seq.length()-2) {
                        temp += "1" + seq.charAt(i+1);
                    }
                    iter=1;
                }
            }
            seq=temp;
            output += seq + "\n";
            System.out.println(u + ": " + seq.length());
            u++;
        }
        os.write(output.getBytes(), 0, output.length());
        os.close();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

2 个答案:

答案 0 :(得分:0)

好,我有解决方法: 我使用Eclipse显示文本文件,但魔术地不显示文件的其余部分。如果我使用任何其他文本编辑器,它将显示其余内容。也许eclipse txt编辑器只能显示有限数量的文本...

答案 1 :(得分:0)

如果String太大而无法创建,则会得到OutOfMemoryException。情况并非如此,您的程序可以运行并打印37行数字,最后一行的长度为48410个字符。

您用于查看输出的编辑器很可能无法呈现这些很长的行。它适用于IntelliJ IDEA。