从java中的文本文件中读取双输入

时间:2014-03-10 16:17:06

标签: java

我在从文本文件中读取双输入时遇到一些问题

我正在编写一个程序,可以读取包含这样的数字的文件的输入

  • 3.4 5.0 12
  • 1.3 8.2 6
  • 0.8 9.1 2.3

任何人都有一些想法或提示请... ??

package Test;

import java.io.*;
import java.util.*;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.ObjectInputStream;

public class readfileVector {
public static void main(String[] args){
    try{
        readDataFromFile();
    }catch(IOException ex){
        ex.printStackTrace();
    }


}
public static void readDataFromFile() throws IOException{
    double a, b, c;

    FileInputStream fis = null;
    try{
        fis = new FileInputStream(new File("D:\\Pro1\\vector.inp.txt"));
        DataInputStream dis = new DataInputStream(fis);

        a = dis.readDouble();
        b = dis.readDouble();
        c = dis.readDouble();

        System.out.println("double:" + a + "; double:" + b + ";double:" + c );
    }catch(IOException ex){
        ex.printStackTrace();
    }finally{
        if(fis != null)
            fis.close();
    }
}

} 我正在尝试这样做

2 个答案:

答案 0 :(得分:1)

String stringValue = new Scanner( new File("myDoubles.txt") ).useDelimiter("\\A").next();

// split string by any whitespace
String[] doublesAsStrings = stringValue.split("\\s+");

for( int i = 0; i < doublesAsStrings.length; i++ )
    double val = Double.parseDouble( doublesAsStrings[i] );

你明白了。

  

来源:How do I create a Java string from the contents of a file?

答案 1 :(得分:1)

您可以使用以下扫描仪读取您的文件:

    Scanner s = new Scanner(new File(<your file>));

    while(s.hasNextDouble()){
          a = s.nextDouble();
          b = s.nextDouble();
          c = s.nextDouble();

          System.out.println("double:" + a + "; double:" + b + ";double:" + c );

    }

希望这有帮助。