Файловая система Java Int или Double - PullRequest
0 голосов
/ 20 января 2019

У меня есть 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 голосов
/ 20 января 2019

Я нахожу другой путь.Я надеюсь помочь ...

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");
}   
}
0 голосов
/ 20 января 2019

Вы можете попробовать это:

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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...