用List<SysFile>接收df -h获取到的信息
时间: 2024-03-01 18:54:10 浏览: 100
Java 新版POI 读取excel文件信息返回List<List<String>>对象,包含文件内公式处理
假设您的`SysFile`类具有以下属性:
```java
public class SysFile {
private String fileSystem;
private String size;
private String used;
private String available;
private String usePercentage;
private String mountPoint;
// 构造函数和 getter/setter 方法省略
}
```
您可以在上一个示例中修改代码,将命令的输出转换为`List<SysFile>`对象。示例代码如下:
```java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
public class DiskSpace {
public static void main(String[] args) {
String command = "df -h";
try {
// 使用ProcessBuilder类运行命令
ProcessBuilder pb = new ProcessBuilder("bash", "-c", command);
Process process = pb.start();
// 从命令的输出中获取信息
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
List<SysFile> sysFiles = new ArrayList<>();
while ((line = reader.readLine()) != null) {
// 跳过输出的标题行
if (line.startsWith("Filesystem")) {
continue;
}
String[] fields = line.split("\\s+");
SysFile sysFile = new SysFile(fields[0], fields[1], fields[2], fields[3], fields[4], fields[5]);
sysFiles.add(sysFile);
}
// 检查命令是否执行成功
int exitCode = process.waitFor();
if (exitCode == 0) {
System.out.println("命令执行成功!");
} else {
System.out.println("命令执行失败!");
}
// 打印 List<SysFile> 对象中的信息
for (SysFile sysFile : sysFiles) {
System.out.println(sysFile.getFileSystem() + "\t" + sysFile.getSize() + "\t" + sysFile.getUsed() + "\t" + sysFile.getAvailable() + "\t" + sysFile.getUsePercentage() + "\t" + sysFile.getMountPoint());
}
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
}
}
```
该代码将运行`df -h`命令,并将命令的输出转换为`List<SysFile>`对象。您可以根据您的需求修改代码以获取和处理命令输出中的信息。
阅读全文