设计一个Java程序,完成: 原文件文件data.txt内容是:每行的数据个数(即各台设备采集的数据个数都是相同的)保证是相等的,但一行上的数据个数是不确定的。行的个数(即设备台数)是确定的。 12 54 67 89 16 -这是第一台设备采集的数据 32 63 76 89 21 -这是第二台设备采集的数据 87 32 98 56 31 -这是第三台设备采集的数据 为了插入到数据库的方面,现要求将其数据向右转90后写入文本文件data90.txt中,即数据变成如下方式写入文本文件data90.txt中:(每一列是一台设备的采集数据) 12 32 87 54 63 32 67 76 98 89 89 56 16 21 31
时间: 2024-03-21 12:41:34 浏览: 18
可以使用Java的IO流和数组来完成此任务。首先,我们需要读取原始数据文件data.txt中的数据,并将其存储在一个二维数组中。然后,我们需要将这个二维数组向右旋转90度,并将结果写入新的文件data90.txt中。
以下是实现此任务的示例代码:
```java
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;
public class DataRotation {
public static void main(String[] args) {
// 读取原始数据文件
int[][] data = readData("data.txt");
// 将数据向右旋转90度
int[][] rotatedData = rotateData(data);
// 将旋转后的数据写入新文件
writeData(rotatedData, "data90.txt");
}
/**
* 读取数据文件并将数据存储在二维数组中
*/
private static int[][] readData(String filename) {
try (Scanner scanner = new Scanner(new File(filename))) {
int numRows = scanner.nextInt();
int numCols = scanner.nextInt();
int[][] data = new int[numCols][numRows];
for (int i = 0; i < numCols; i++) {
for (int j = 0; j < numRows; j++) {
data[i][j] = scanner.nextInt();
}
}
return data;
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
/**
* 将二维数组向右旋转90度
*/
private static int[][] rotateData(int[][] data) {
int numRows = data[0].length;
int numCols = data.length;
int[][] rotatedData = new int[numRows][numCols