将大字符串写入文本文件?

时间:2013-05-17 05:38:53

标签: java text csv text-files

我的字符串看起来像这样 -

String text = "item1, item2, item3, item4 etc..."

我制作了java代码,将这些字符串写入文本文件,只需更改扩展名即可将其转换为csv。逻辑是 - 打印一个字符串,然后移动到新行并打印另一个字符串。

当测试字符串只有 10-20个项目时,文本文件中的输出是完美的。

但是,我真正的字符串大约有 3000个独特的项目。大约有<20,000>个这样的字符串。

当我将所有这些字符串写入文本文件时,它会搞砸。 我看到 3000行而不是20,000行

我认为没有必要为此问题编写代码,因为它已经完成并经过测试。 我只需要能够正确格式化我的数据。

对于那些想要查看代码的人 -

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;


public class Texty {

    public static void main(String[] args) {

        System.out.println("start");

        String str = "";
        String enter = System.getProperty( "line.separator" );

        for(int i = 0; i< 5; i++){
            str = str + i + ",";

        }

            str = str + 5; 
        System.out.println(str);

        FileWriter fw = null;
        File newTextFile = new File("C:\\filez\\output.txt");
        try {
            fw = new FileWriter(newTextFile);
        } catch (IOException e) {
            e.printStackTrace();
        }

        try {

            for(int i = 0; i < 10; i++){

             fw.write(str + enter);

            }

            fw.close();

        } catch (IOException iox) {
            //do stuff with exception
            iox.printStackTrace();
        }

        System.out.println("stop");

    }

}

1 个答案:

答案 0 :(得分:3)

你是对的,10列和3000列之间没有区别,你只需要更长的行

10行和20,000行之间没有区别,你的juts有更多的行。

虽然你可以在Java或文件系统中拥有更多,更大的文件,但是某些旧版本的excel无法加载这么多列(它有256列的限制)或者这么大的文件(它有一个限制大约1 GB的原始数据)

我会检查另一个程序中的文件是否正确,例如你写的一个,你可能会发现所有的数据都存在。

如果数据不存在,则表示存在错误,Java,Windows或Linux中没有任何限制可以解释您所看到的行为。