我需要编写一个Java程序,它从一个名为input.txt的文件中读取数据,对其进行解析,并计算出该系统中每个目录所占用的存储总大小。
任何目录占用的存储大小都定义为此目录的大小,此目录中所有文件的大小以及此目录中所有目录占用的总存储大小的总和。程序应该将每个目录的名称以及它所消耗的总存储量写入名为output.txt的文件中。
考虑以下输入文件:
Name | Type | Size | Owner | Directory
root , directory , 128 , admin , NONE
users , directory , 512 , admin , root
navin , directory , 1024 , navin , users
navin.jpg , photo , 128000 , navin , navin
包含有关存储在文件系统中的文件的信息。每行对应一个文件,字段用逗号分隔。 "第一个字段包含文件名,第二个字段包含文件类型,第三个字段是文件的大小(以字节为单位),第四个字段是文件所有者的用户名,最后一个字段是名称该文件的父目录" (即此文件所在目录的名称。)注意:特殊父目录名称NONE表示此文件是文件系统的根目录。
此外,出于本程序的目的,假设所有文件/目录名在系统中都是唯一的。
我试过下面的代码:
package com.threads;
import java.io.*;
public class TotalDirectorySize {
public static void main(String[] args) {
BufferedReader br = null;
try {
String sCurrentLine;
br = new BufferedReader(new FileReader("C:\\input.txt"));
while ((sCurrentLine = br.readLine()) != null) {
System.out.println("Row values from file" + " " + sCurrentLine);
String[] values = sCurrentLine.split(",");
for (String val : values)
System.out.println("Values are" + " " + val);
createDirectory(values);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (br != null)
br.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
}
这里我试图在数组中获取五个值,并希望根据数组中的最后一个值创建特定目录。我正在考虑创建一个内存中的结构,但不知道如何使用数据结构java。请提出一个好方法。