在java中读取csv文件时预览被截断为256行

时间:2017-01-15 06:57:28

标签: java csv

我正在尝试读取具有大约2000列和7行的csv文件的内容。我收到了以下错误。

Exception in thread "main" java.lang.NumberFormatException: For input string: "Preview truncated at 256 rows"
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2043)
at sun.misc.FloatingDecimal.parseDouble(FloatingDecimal.java:110)
at java.lang.Double.parseDouble(Double.java:538)
at java.lang.Double.valueOf(Double.java:502)

请找到以下代码

   import java.io.BufferedReader;
   import java.io.FileReader;
   import java.io.IOException;
   import java.util.ArrayList;

   import org.apache.commons.math3.analysis.function.Log;

    public class GoogleFailureGenerator{    
    private ArrayList<Long>hostID = new ArrayList<Long>();  
    private ArrayList<Double>MTBF = new ArrayList<Double>();
    private ArrayList<Double>MTTR = new ArrayList<Double>();
    private ArrayList<Double>SD_TBF = new ArrayList<Double>();
    private ArrayList<Double>Var_TBF = new ArrayList<Double>();
    private ArrayList<Double>SD_TTR = new ArrayList<Double>();
    private ArrayList<Double>Var_TTR = new ArrayList<Double>();

public void failInfo(){
    BufferedReader buffer;
    try {
            buffer = new BufferedReader(new FileReader("C://Data/Australia/Information_for_Cloudsim.csv"));                     
            buffer.readLine(); //Skips the first line of the file. 
            String currentstr;
            while((currentstr=buffer.readLine()) != null){
                String[] column = currentstr.split(",");
                //System.out.println("column[0] = " +column[0]);

                if(column.length>0){
                    //hostID.add(Long.parseLong(column[0]));
                    hostID.add(Double.valueOf(column[0]).longValue());
                    MTBF.add(Double.parseDouble(column[1]));
                    SD_TBF.add(Double.parseDouble(column[2]));
                    Var_TBF.add(Double.parseDouble(column[3]));
                    MTTR.add(Double.parseDouble(column[4]));
                    SD_TTR.add(Double.parseDouble(column[5]));
                    Var_TTR.add(Double.parseDouble(column[6]));
                }               

            }
        }
         catch (IOException e) {
            e.printStackTrace();
            System.out.println("The simulation has been terminated due to an IO error");
        }   
    }



public static void main(String args[]){ 

GoogleFailureGenerator failgen = new GoogleFailureGenerator();

failgen.failInfo();

}
}

任何帮助都会非常明显。

提前致谢。

Yogesh Sharma

1 个答案:

答案 0 :(得分:0)

很明显,您的CSV格式不是您认为的格式。使用Excel或纯文本编辑器查看它。你应该在某个地方找到一个说

的单元格
    Preview truncated at 256 rows

而不是有效的数字。

最可能的解释是CSV文件未正确下载。

你需要弄清楚为什么它没有正确下载;即为什么你有一个“预览”而不是一个完整的CSV。然后解决这个问题。

提示:在上下文中支付读取错误消息...实际的错误消息是:

java.lang.NumberFormatException: 
    For input string: "Preview truncated at 256 rows" 

请注意,它显示数字格式异常,并且它告诉您完全它认为哪个字符串不是格式正确的数字;即双引号内的东西!!