Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
需要在Java中创建内存中的文件结构层次结构_Java_Algorithm_Jakarta Ee - Fatal编程技术网

需要在Java中创建内存中的文件结构层次结构

需要在Java中创建内存中的文件结构层次结构,java,algorithm,jakarta-ee,Java,Algorithm,Jakarta Ee,我需要编写一个Java程序,从名为input.txt的文件中读取数据,对其进行解析,并计算出该系统中每个目录所消耗的总存储容量 任何目录消耗的存储大小定义为该目录的大小、该目录中所有文件的大小以及该目录中所有目录消耗的总存储大小之和。程序应该将每个目录的名称以及它消耗的总存储量写入一个名为output.txt的文件 考虑以下输入文件: Name | Type | Size | Owner | Directory root , directory

我需要编写一个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数据结构。请推荐一个好的方法。

为您的数据创建一个专用对象(包含5个字段:名称、类型、大小、所有者和目录)。我刚才在a上发布的答案也应该是一个很好的例子。几天前有一个非常类似的问题(可能来自同一学校的人)