在 Java 中使用 Scanner class 读取文本文件的特定部分
Reading specific parts of a text file using Scanner class in Java
我已经在此处解决了与使用扫描仪 class 读取文本文件相关的大部分问题,但我仍然不明白如何将以下文本解析为不同的变量,然后替换该文本使用更改后的变量值。
这是文本:
## UserID1.Credentials :
[Username] = {default}
[Password] = {passwordforadmin}
[AccType] = {Admin.FirstDefault}
[AccessLevel] = {1}
##
现在,我需要将上述文本解析为以下变量,其中:
int UserID = 1;
String Username = "default";
String Password = "passwordforadmin";
String AccType = "Admin";
String AccUnderType = "FirstDefault";
int AccessLevel = 1;
我用来读取文本文件的方法是:
String content = new Scanner(new File("D:/EncryptedCredentials.txt")).useDelimiter("\Z").next();
其中 content 是读取文本文件 (D:/EncryptedCredentials.txt) 的字符串,使用分隔符 '\Z'。 (我需要将整个文本文件加载到一个字符串中,因为它会被程序不断修改,并且应该自动添加更多详细信息,比如如果用户在特定时间登录,比如 11:00 AM,并在下午 3:00 登出,并使用了 A、B 和 C 功能,则以上文本应修改为:
## UserID1.Credentials :
[Username] = {default}
[Password] = {passwordforadmin}
[AccType] = {Admin.FirstDefault}
[AccessLevel] = {1}
[LastLogInTime] = {1100}
[LastLogOutTime] = {1500}
[TotalTimeSpent] = {0400}
[FeaturesUsed] = {A,B,C}
##
如何读取和写入文本文件?
另一个问题是,既然任何人都可以明显地看到我在做一个登录系统,我需要知道如何对文本文件进行加密,以便人们只能通过程序访问文本文件的内容。当然,文本可以更改。我所需要的只是让程序读取它并将特定信息存储在适当的变量中,然后将其写回加密的文本文件。
所以,总而言之,我需要知道的是:
如何只读取加载到 String 上的文本文件的特定部分?
如何修改这些部分(包括添加以前不存在的文本)并将它们再次写入文本文件?
如何在对文本文件进行加密的同时执行上述步骤?
请给我解释一下,因为我对此了解不多。提前致谢。
注意:我仍然是 Java 的初学者,除了 Scanner classes、数组、循环等和一些随机的东西,我什么都不知道。请帮帮我。
我建议使用属性文件进行更简单的方法。
这是一个 link 的例子:
http://www.mkyong.com/java/java-properties-file-examples/
我已经在此处解决了与使用扫描仪 class 读取文本文件相关的大部分问题,但我仍然不明白如何将以下文本解析为不同的变量,然后替换该文本使用更改后的变量值。 这是文本:
## UserID1.Credentials :
[Username] = {default}
[Password] = {passwordforadmin}
[AccType] = {Admin.FirstDefault}
[AccessLevel] = {1}
##
现在,我需要将上述文本解析为以下变量,其中:
int UserID = 1;
String Username = "default";
String Password = "passwordforadmin";
String AccType = "Admin";
String AccUnderType = "FirstDefault";
int AccessLevel = 1;
我用来读取文本文件的方法是:
String content = new Scanner(new File("D:/EncryptedCredentials.txt")).useDelimiter("\Z").next();
其中 content 是读取文本文件 (D:/EncryptedCredentials.txt) 的字符串,使用分隔符 '\Z'。 (我需要将整个文本文件加载到一个字符串中,因为它会被程序不断修改,并且应该自动添加更多详细信息,比如如果用户在特定时间登录,比如 11:00 AM,并在下午 3:00 登出,并使用了 A、B 和 C 功能,则以上文本应修改为:
## UserID1.Credentials :
[Username] = {default}
[Password] = {passwordforadmin}
[AccType] = {Admin.FirstDefault}
[AccessLevel] = {1}
[LastLogInTime] = {1100}
[LastLogOutTime] = {1500}
[TotalTimeSpent] = {0400}
[FeaturesUsed] = {A,B,C}
##
如何读取和写入文本文件? 另一个问题是,既然任何人都可以明显地看到我在做一个登录系统,我需要知道如何对文本文件进行加密,以便人们只能通过程序访问文本文件的内容。当然,文本可以更改。我所需要的只是让程序读取它并将特定信息存储在适当的变量中,然后将其写回加密的文本文件。
所以,总而言之,我需要知道的是:
如何只读取加载到 String 上的文本文件的特定部分? 如何修改这些部分(包括添加以前不存在的文本)并将它们再次写入文本文件? 如何在对文本文件进行加密的同时执行上述步骤?
请给我解释一下,因为我对此了解不多。提前致谢。
注意:我仍然是 Java 的初学者,除了 Scanner classes、数组、循环等和一些随机的东西,我什么都不知道。请帮帮我。
我建议使用属性文件进行更简单的方法。 这是一个 link 的例子: http://www.mkyong.com/java/java-properties-file-examples/