你能帮我看一下/ 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");
}
}
但是如何在::?
之后读取主目录答案 0 :(得分:1)
为什么不是? / etc / passwd是一个与系统上任何其他文件类似的文件。只需以只读方式打开并解析文本以获取所需信息。在这种情况下,/ etc / passwd是几个独立的行,每行都有一个以冒号分隔的字段,':'。您想要的字段是用户名(第一个)和主目录(第六个)。注意::表示那里有一个空字段。
答案 1 :(得分:1)
抱歉,我还没有足够的声誉发表评论,但您的代码中可能存在错误(除非您打算排除根用户名),因为第一个readLine命令读取第一行,而readLine在循环读取下一行。