gpt4 book ai didi

Java 文本文件从四列文本文件中删除 double

转载 作者:行者123 更新时间:2023-11-30 08:13:31 25 4
gpt4 key购买 nike

我必须编写一段代码来获取一个包含整数和 double 的文本文件,然后在一个文件中打印 double ,在另一个文件中打印整数。文本文件的格式如下:

double int int int  
double int int int
...
double int int int

它保存在“raw.txt” 文件中。

输出应该是这样的:

int int int  
int int int
...
int int int

这是我目前尝试过的:

import java.io.*;
import java.util.*;

public class DATA {
public static void main(String[] args) throws FileNotFoundException {
PrintWriter writer = new PrintWriter(new File("sorted.txt"));
Scanner reader = new Scanner(new File("raw.txt"));
int temp = 0, count = 1;
while (reader.hasNext()) {
try {
temp = reader.nextInt();
}
catch (InputMismatchException e) {
reader.nextLine();
temp = (int) reader.nextDouble();
}
writer.print(temp);
if (count % 4 == 0)
writer.println();
count++;

}
writer.close();
reader.close();
}
}

当前代码抛出一个InputMismatchException。非常感谢所有帮助。

最佳答案

根据您提供的代码,您只想拆分文件而不关心 doubleint 值本身。因此,您可以将文件作为普通文本文件处理,并通过分隔空白字符拆分值。

该代码段对 raw.txt 文件的格式做了一些假设,并未进行优化。因此,根据您的需要对其进行修改应该是一件容易的事。

public static void main(String[] args) throws IOException {
List<String> rawLines = Files.readAllLines(Paths.get("raw.txt"));
try (Writer intWriter = Files.newBufferedWriter(
Paths.get("int_values.txt"),
StandardOpenOption.CREATE_NEW);
Writer doubleWriter = Files.newBufferedWriter(
Paths.get("double_values.txt"),
StandardOpenOption.CREATE_NEW)) {
for (String line : rawLines) {
// the split might need to be amended if the values
// are not separated by a single blank
String[] values = line.split(" ");

// to be amended if there are not alway four values in a row
if (values.length != 4) {
continue;
}

doubleWriter.write(values[0]);
doubleWriter.write(System.lineSeparator());

intWriter.write(values[1]);
intWriter.write(' ');
intWriter.write(values[2]);
intWriter.write(' ');
intWriter.write(values[3]);
intWriter.write(' ');
intWriter.write(System.lineSeparator());
}
}
}

关于Java 文本文件从四列文本文件中删除 double ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29928547/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com