Java文件:从文本文件中获取特定索引



我有以下目录server/auth/usernames.txt,我想读取所有行并找到一个名为clientusername的字符串的特定索引

我有以下代码

File dirFile = new File("auth/");
String clientUsername ="john";
int indexUsername = Files.readAllLines(Paths.get(dirFile.getAbsolutePath() + "usernames.txt")).indexOf(clientUsername);

但这给了我CCD_ 3的完整路径。我只想得到auth/usernames.txt。如何做到这一点?

dirFile.getAbsolutePath()更改为dirFile.toPath()

public static void main(String[] args) {
File f = new File("path-to-your-file-on-your-system!");
System.out.println(getLineNumber("SlimShady", f));
System.out.println(getLineNumber("Eminem", f));
System.out.println(getLineNumber("MomsSpaghetti", f));
System.out.println(getLineNumber("doodoodoodoo....doooooooooo...dooooooo...can't touch this!", f));
}
private static int getLineNumber(String userName, File usernameFile) {
boolean found = false;
int lineCount = -1;
try (BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(usernameFile)))) {            
String line;
while ((line = reader.readLine()) != null && !found) {
++lineCount; // increment and get (start at 0)
found = line.trim().equals(userName); // found it?
}
} catch (IOException ex) {
Logger.getLogger(TestMain.class.getName()).log(Level.SEVERE, null, ex);
}
if (!found) {
// we didn't find it... return -1 (an impossible valid value) to handle that scenario.
lineCount = -1;
}
return lineCount; // found it, what line?

}

在我完全虚构的用户名文件中,只使用与埃米纳姆相关的用户名运行它(我们为MC Hammer得到了-1……显然我们仍然不能碰这个。

run:
1
0
2
-1
BUILD SUCCESSFUL (total time: 0 seconds)

相关内容

  • 没有找到相关文章

最新更新