使用Java中的Scanner类读取文本文件的特定部分

时间:2015-04-21 05:42:37

标签: java encryption text java.util.scanner read-write

我已经完成了大部分与使用Scanner类读取文本文件相关的问题,但我仍然不明白如何将以下文本解析为不同的变量,然后用更改的变量值替换该文本。 这是文字:

## 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'。 (我需要将整个文本文件加载到一个String中,因为它会被程序不断修改,并且应该自动添加更多细节,例如用户在特定时间登录,比如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的初学者,我不知道除了扫描程序类,数组,循环等以及一些随机的东西。请帮帮我。

1 个答案:

答案 0 :(得分:1)

我建议使用属性文件更简单的方法。 这是一个示例的链接: http://www.mkyong.com/java/java-properties-file-examples/