用Java读取/etc/passwd文件

用Java读取/etc/passwd文件,java,Java,你能帮我读一下/etc/passwd文件的内容吗 我想用Java读取文件并显示用户名和用户主文件夹位置 vivek:x:500:500::/home/vivek:/bin/bash raj:x:501:501::/home/raj:/bin/ksh ash:x:502:502::/home/ash:/bin/zsh jadmin:x:503:503::/home/jadmin:/bin/sh jwww:x:504:504::/htdocs/html:/sbin/nologin wwwcorp:x

你能帮我读一下/etc/passwd文件的内容吗

我想用Java读取文件并显示用户名和用户主文件夹位置

vivek:x:500:500::/home/vivek:/bin/bash
raj:x:501:501::/home/raj:/bin/ksh
ash:x:502:502::/home/ash:/bin/zsh
jadmin:x:503:503::/home/jadmin:/bin/sh
jwww:x:504:504::/htdocs/html:/sbin/nologin
wwwcorp:x:505:505::/htdocs/corp:/sbin/nologin
wwwint:x:506:506::/htdocs/intranet:/bin/bash
scpftp:x:507:507::/htdocs/ftpjail:/bin/bash
rsynftp:x:508:508::/htdocs/projets:/bin/bash
mirror:x:509:509::/htdocs:/bin/bash
jony:x:510:510::/home/jony:/bin/ksh
amyk:x:511:511::/home/amyk:/bin/ksh
这在Java中是可能的吗

编辑

这是我的建议

public void readLinuxUsers()
    {
        try
        {
            BufferedReader in = new BufferedReader(new FileReader("/etc/passwd"));
            String str;
            str = in.readLine();
            while ((str = in.readLine()) != null)
            {
                String[] ar = str.split(":");
                String username = ar[0];
                String homedir = ar[6];

            }
            in.close();
        }
        catch (IOException e)
        {
            System.out.println("File Read Error");
        }
    }

但是我怎样才能在以下内容之后读取主目录:?

为什么不呢/etc/passwd与系统上的任何其他文件一样是一个文件。只需以只读方式打开并解析文本以获取所需信息。在本例中,/etc/passwd是几个独立的行,每个行的字段由冒号“:”分隔。您需要的字段是用户名第一个,主目录第六个。请注意::表示那里有一个空字段。

很抱歉,我还没有足够的声誉发表评论,但您的代码中可能存在错误,除非您打算排除根用户名,因为第一个readLine命令读取第一行,而循环开头的readLine读取下一行。

当然,这是可能的。到目前为止,您尝试了什么?遇到了什么问题?您需要此文件的读取权限,尝试使用管理员权限运行java进程。这个问题似乎离题了,因为用户不费吹灰之力就要求代码。熟悉java并不是让别人完成工作的借口。我更新了我的帖子。对吗?我没有Linux机器来测试它?@PeterPenzov你能编译java代码吗?如果是,则使用示例输入创建一个文件,并使用该文件进行测试。您不必在Linux机器上进行测试。是的,只需删除循环上方的第一个readLine命令。我已经测试过了,很抱歉,我不明白你在问什么。您需要做的就是删除这一行str=in.readLine;从示例方法readLinuxUsers