从记事本中获取数据

时间:2017-05-21 07:55:35

标签: java string notepad

我自己学习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索引查找整个单词并提取整个单词,但是如何将其限制为仅包含具有我想要的信息的行?

还有其他方法吗? 提前谢谢。

1 个答案:

答案 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;

对于不同的用户,您可能还想使用不同的文件名。否则你只会覆盖以前的数据