使用Java代码依据某一列数据删除csv文件的空值
时间: 2024-04-08 18:30:47 浏览: 117
您可以使用以下Java代码来删除CSV文件中某一列数据的空值:
```java
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class CSVDataDeleter {
public static void deleteEmptyValues(String csvFilePath, int columnIdx) {
try (BufferedReader reader = new BufferedReader(new FileReader(csvFilePath));
BufferedWriter writer = new BufferedWriter(new FileWriter(csvFilePath + ".tmp"))) {
String line;
while ((line = reader.readLine()) != null) {
String[] data = line.split(",");
if (data.length > columnIdx && !data[columnIdx].isEmpty()) {
writer.write(line);
writer.newLine();
}
}
} catch (IOException e) {
e.printStackTrace();
}
// Rename the temporary file to original file
String tempFilePath = csvFilePath + ".tmp";
String originalFilePath = csvFilePath;
try {
java.nio.file.Files.move(java.nio.file.Paths.get(tempFilePath),
java.nio.file.Paths.get(originalFilePath),
java.nio.file.StandardCopyOption.REPLACE_EXISTING);
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
String csvFilePath = "path/to/your/csv/file.csv";
int columnIdx = 2; // Index of the column with data to delete empty values
deleteEmptyValues(csvFilePath, columnIdx);
}
}
```
请将代码中的`csvFilePath`变量设置为您的CSV文件的路径,`columnIdx`变量设置为要删除空值的列的索引。
上述代码将会创建一个临时文件,在读取原始CSV文件时删除空值行,并将非空值行写入临时文件中。然后,它将删除原始文件并将临时文件重命名为原始文件的名称,从而替换原始文件。
请确保在运行代码之前备份您的原始CSV文件。
阅读全文