java打乱csv数据
时间: 2023-10-26 14:45:22 浏览: 39
你可以使用 Java 的 Collections 类中的 shuffle() 方法来打乱 CSV 数据。首先,你需要读取 CSV 文件并将其存储为一个 List<List<String>>,其中每个内部 List<String> 表示 CSV 文件的一行数据。然后,你可以使用 Collections 类的 shuffle() 方法对该 List 进行打乱操作。以下是一个示例代码:
```java
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class CSVShuffler {
public static void main(String[] args) {
String csvFile = "input.csv"; // 输入的 CSV 文件路径
String shuffledCsvFile = "shuffled.csv"; // 打乱后的 CSV 文件路径
List<List<String>> rows = new ArrayList<>();
try (BufferedReader br = new BufferedReader(new FileReader(csvFile))) {
String line;
while ((line = br.readLine()) != null) {
String[] data = line.split(","); // 根据实际的分隔符进行拆分
List<String> row = new ArrayList<>();
Collections.addAll(row, data);
rows.add(row);
}
} catch (IOException e) {
e.printStackTrace();
}
Collections.shuffle(rows);
try (FileWriter writer = new FileWriter(shuffledCsvFile)) {
for (List<String> row : rows) {
writer.write(String.join(",", row) + "\n");
}
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("CSV 数据已打乱并保存到 " + shuffledCsvFile);
}
}
```
在上述代码中,你需要将 "input.csv" 替换为你的 CSV 文件路径,将 "shuffled.csv" 替换为打乱后的 CSV 文件路径。请确保 CSV 文件的每行数据使用相同的分隔符进行拆分。代码中使用逗号作为分隔符,你可以根据实际情况进行修改。运行代码后,打乱后的 CSV 数据将保存在 "shuffled.csv" 文件中。