写入文件的受限数据

时间:2019-05-24 16:13:57

标签: java io printwriter

使用PrintWriter时文件大小是否受到限制? 我目前正在尝试写入文件。我在二维双精度数组中拥有的数据。我正在使用的数据当前在第一个数组中有一个元素,在第二个数组中有955个元素。这是我正在使用的代码:

    File outputFile = new File(getFileName());
    PrintWriter output = new PrintWriter(outputFile);   

    for (int i=0; i<myArray.length; i++){
        for (int j=0; j<this.dim2; j++){ 
            output.println("\t value for " + sType + ": " + (j+1)+
                    " is: " + this.myArray [i][j]);
        }//end for j
    }//end for i

使用此代码,仅打印前607行(尽管之前是718行)。如果我打印到控制台,它将把数组的所有内容打印到屏幕上。 控制台输出的最后几行:

 Value for Info: 951 is: 0.0
     Value for Info: 952 is: 0.0
     Value for Info: 953 is: 0.5625
     Value for Info: 954 is: 0.16666666666666666
     Value for Info: 955 is: 0.20833333333333331

最后写入文件的行:

Value for Info: 603 is: 0.5555555555555556
     Value for Info: 604 is: 0.5694444444444444
     Value for Info: 605 is: 0.5
     Value for Info: 606 is: 0.0
     Value for Info: 607 is: 0.5972222222222222 

注意,我在内部循环中添加了System.out.println语句,以确保它遍历整个数组。但是由于某种原因,它不会写入文件。
对问题进行故障排除后,我发现如果我在内部循环中将某个单词字符串的额外行写入文件,则会向该文件写入一些额外的行。这对我来说没有道理。

我认为double值可能是个问题,因此我使用BigDecimal来限制输出值的小数位数,方法如下:         文件outputFile = new File(getFileName());         PrintWriter输出=新的PrintWriter(outputFile);

    BigDecimal bg;
    for (int i=0; i<this.dim1; i++){
        output.println("Input " + sType + ": " + (i+1));
        for (int j=0; j<this.dim2; j++){
            bg = new BigDecimal(this.nActivation[i][j]);
            output.println("\t Value for " + sType + ": " + (j+1)+
                    " is: " + bg.setScale(3, RoundingMode.UP));

但是随后它仅写入文件,直到值499。 任何关于正在发生的事情的想法都将不胜感激。

0 个答案:

没有答案