我有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新手。我还能尝试什么?
答案 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");
}
}