从文本文件中获取整数

时间:2014-05-03 08:54:13

标签: java parsing type-conversion

基本上我一直在寻找一个脚本,将一些数据放入文本文件中,之后这些保存的数据可能会再次变为红色。

我成功完成了第一部分:

public void slaOp(){
    try {
        File file = new File("savefile.txt");
        // Als bestand nog niet bestaat maak je het.
        if (!file.exists()) {
            file.createNewFile();
        }
        // Schrijven naar de file
        FileWriter fw = new FileWriter(file.getAbsoluteFile());
        BufferedWriter bw = new BufferedWriter(fw);   
            // alle x waarden op 1 lijn en alle y waarden op 1 lijn
            String xwaarden = "";
            for(int i=0; i<positiesX.length;i++){
                xwaarden += ""+positiesX[i];
            }
            String ywaarden="";
            for(int s=0; s<positiesY.length;s++){
                ywaarden += ""+positiesY[s];
            }
    bw.write(xwaarden);
            bw.newLine();
            bw.write(ywaarden);
    bw.close();
    System.out.println("Bestand werkt correct verwerkt.");
} catch (IOException e) {
        e.printStackTrace();
}
}

第一部分将数据写入如下文件:

  

123456

     

465489

对于第二部分,我找到了许多方法,但没有一个方法适合我的要求。 首先,我有一个脚本,将整行作为字符串红色。除了我不需要Stringline但数字分开的部分外,这个工作有效。

之后我尝试了一个使用hasNextInt()和nextInt()的脚本。 但出于某种原因,这个脚本没有读到任何东西。我认为问题在于文本文件中的整数不是实际整数而是字符串这一事实? 我无法解决这个问题所以尝试了第3个脚本。

FileInputStream fileInput = new FileInputStream("savefile.txt");
    int r;
    while ((r = fileInput.read()) != -1) {
       int c = (int) r;
        System.out.println(c);
    }
    fileInput.close();

此脚本读取字符。将它们转换为整数时,输出不是保存到文件中的数字。

有人能告诉我处理这种情况的正确方法吗?对例子有一些很好的解释吗?

3 个答案:

答案 0 :(得分:2)

我同意@prabugp。如果文件的每一行只有一个数字,那么您可以逐行读取它并使用Integer.parseInt将每一行转换为整数。

目前我相信你在阅读文件时获得的数字与文件中的数字不同的原因是因为你将一行中的每个字符转换为@srm提到的整数表示。所以你得到了字符&#39; 1&#39;的整数表示。例如49。

要逐行阅读文件,您可以使用以下内容(如http://www.programcreek.com/2011/03/java-read-a-file-line-by-line-code-example/所述):

File file = new File("C:\\file.txt");

FileInputStream fis = new FileInputStream(file);

//Construct BufferedReader from InputStreamReader
BufferedReader br = new BufferedReader(new InputStreamReader(fis));

String line = null;
while ((line = br.readLine()) != null) {
    // convert to integer
    Integer a = Integer.parseInt(line);
}

答案 1 :(得分:0)

我能解决的一个快速解决方案是将字符串转换为数字,然后根据需要将其拆分。虽然它只有一个想法,它可以通过多种方式完成

快速link给你。

如果您在此之后需要帮助,我可以更具体。

答案 2 :(得分:0)

&#34;将它们转换为整数时#34;你如何将char转换为int? (请记住,char已经是一个int)。