Java文件系统Int或Double

时间:2019-01-20 15:38:36

标签: java file

我有3个文本文件。 Numbers.txt具有int和double值,例如1 1.5 2 ...我想将我的int值放入我的Int.txt,将double值放入Double.txt。 那我该怎么办?

我尝试了.hasNextDouble()或.hasNextInt()

public static void main(String[] args) {
File f = new File("a.rtf");
File fWrite = new File("aWrite");
try {

    FileReader fr = new FileReader(f);
    FileWriter fw = new FileWriter(fWrite);
    double c = fr.read();
    while(c != -1){
        char k = (char)c;
        c.hasNextDouble();
        System.out.print(k + " ");
        fw.write((int) c);
        c = fr.read();
    }
    fr.close();
    fw.close();
} catch(Exception e) {
    e.printStackTrace();

}

我是Java新手。我还能尝试什么?

2 个答案:

答案 0 :(得分:3)

您可以尝试以下方法:

Writer wr = new FileWriter("aWrite.txt");
wr.write(String.valueOf(1)); 
wr.write(String.valueOf(1.5));
wr.write(String.valueOf(2));

wr.flush();
wr.close();

或者这种方法主要适用于较大的数据:

File file = new  File("aWrite.txt");
BufferedWriter out = new BufferedWriter(new FileWriter(file));
out.write("Write the string to text file");
out.newLine();

答案 1 :(得分:1)

我找到了另一种方式。希望对您有帮助...

import java.io.*;

import java.util.*;

public class Test {

public static void main(String[] args)throws IOException {

    double[] doubleNumbers = new double[6];
    int[] integerNumbers = new int[6];
    int intCount = 0;
    int doubleCount = 0;


    File numbers = new File("numbers.txt");
    FileReader fr = new FileReader(numbers);

    LineNumberReader lnreader= new LineNumberReader(fr); 
    String line = "";
    while ((line = lnreader.readLine()) != null) {

        var _temp  = line.split(" ");

        for(int i = 0;i<_temp.length;i++) {

            if(_temp[i].indexOf(".") > 0) {
                doubleNumbers[doubleCount] = Double.parseDouble(_temp[i]);
                ++doubleCount;
            }else {
                integerNumbers[intCount] = Integer.parseInt(_temp[i]);
                ++intCount;
            }
        }
    }
    fr.close();

    File doubleFile = new File("double.txt");
    FileWriter fw = new FileWriter(doubleFile);

    for(int i = 0;i<doubleCount;i++) {
        fw.write(doubleNumbers[i]+" ");
        if((i +1) % 3 == 0)
            fw.write("\n");
    }

    fw.flush();
    fw.close();

    File integerFile = new File("integer.txt");
    FileWriter fw = new FileWriter(integerFile);

    for(int i = 0;i<intCount;i++) {
        fw.write(integerNumbers[i]+" ");
        if((i +1) % 3 == 0)
            fw.write("\n");
    }

    fw.flush();
    fw.close();

    System.out.print("Done");
}   
}