我自己学习java,并且想用记事本代替SQL来存储数据,因为我还没有学到这一点。我正在建立一个注册页面,您必须输入名称,密码和电子邮件。一切都写在记事本里面。
try {
PrintWriter write = new PrintWriter(new FileWriter(file,true));
write.print(""+ id.getText());
write.print(" " + pWord.getText());
write.print(" " + em.getText());
write.println("");
write.close();
} catch ( IOException z) {
z.printStackTrace();
}
我的问题是如何提取写在记事本上的内容以放入单个变量?例如,在我使用已有的名称登录后,如何确保电子邮件与名称和密码一起显示?
根据我所学到的,我的计划是尝试使用String索引查找整个单词并提取整个单词,但是如何将其限制为仅包含具有我想要的信息的行?
还有其他方法吗? 提前谢谢。
答案 0 :(得分:0)
您有两种选择:
使用属性文件或使用序列化
我建议使用属性文件:
//variables to write:
String name = "stackoverflowman";
String email = "example@email.com";
String password = "myunhackablepassword";
//create a properties object
Properties properties = new Properties();
//set properties
/*
* each property has a key and a value
* after loading you ask for the key and get the value:
*
*/
properties.setProperty("username", name);
properties.setProperty("email", email);
properties.setProperty("password", password);
try {
//save the properties to a file named data.properties
properties.store(new FileOutputStream("data.properties"), "");
}catch(FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
//now load it again
Properties loadprop = new Properties();
try {
//laod the file
loadprop.load(new FileInputStream("data.properties"));
//get the values and print them
System.out.println(loadprop.getProperty("username"));
System.out.println(loadprop.getProperty("email"));
System.out.println(loadprop.getProperty("password"));
} catch (IOException e) {
// again catch Exceptions
e.printStackTrace();
}
编辑: 如果您需要,可以使用以下进口货物
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Properties;
对于不同的用户,您可能还想使用不同的文件名。否则你只会覆盖以前的数据