从.txt文件中获取文本

时间:2017-08-30 19:24:00

标签: java output bufferedreader

我正在尝试从.txt文件中获取文本并将其写在System中,但它无效。 我的User.txt文件的格式为

user:pass
user2:pass2
etc

我想让用户一次传递一个并在System中显示。

当前系统为"详细信息"显示.txt文件的路径 "用户名"节目" C" "密码"节目" C" 我假设C启动路径文件。我不确定为什么它没有从.txt文件中获取文本。

我做错了什么?

此外,它在第一次迭代后清除整个.txt

String username;
String password;
String details;

try {
  Scanner fileScanner = new Scanner(getDirectoryData() + "User.txt");
  details = fileScanner.nextLine();
  System.out.println(details);
  username = details.split(":")[0].split("@")[0];
  password = details.split(":")[0];

  System.out.println(username);
  System.out.println(password);

  FileWriter fileStream = new FileWriter(getDirectoryData() + "User.txt");
  BufferedWriter out = new BufferedWriter(fileStream);

  // sendMessage("INFO:BOT:" + username);

  while(fileScanner.hasNextLine()) {
    String next = fileScanner.nextLine();
    if(next.equals("\n")) {
      out.newLine();
    } else {
      out.write(next);
      out.newLine();
    }
  }

  out.close();
} catch (IOException e) {
  e.printStackTrace();
}

2 个答案:

答案 0 :(得分:1)

因此,您遇到的问题是扫描程序正在将字符串读作getDirectoryData() + "User.txt",而不是读取您想要读取的文件。这就是为什么您获取文件名而不是文件内容的原因。

以下是修改代码以解决此问题的方法:

    File file = new File(getDirectoryData() + "User.txt");
    Scanner fileScanner = new Scanner(file);
    details = fileScanner.nextLine();
    System.out.println(details);

答案 1 :(得分:0)

If you are wanting to read all the entries from the file, probably you should do this and please change file directory as per your requirement.

null