我如何从数据库中获取数据并将其存储到文本文件中?

how do i get the data from a database and store it into a text file?

我是 Java 中的数据库新手,我正在尝试从 1 table 导出数据并将其存储在文本文件中。目前下面的代码写入文本文件但是全部在一行上?有人可以帮忙吗?

我的代码

    private static String listHeader() {
            String output = "Id Priority From                           Label  Subject\n";
            output += "== ======== ====                           =====  =======\n";
            return output;
        }
    public static String Export_Message_Emails() {
            String output = listHeader();
            output +="\n";
            try {
                ResultSet res = stmt.executeQuery("SELECT * from messages ORDER BY ID ASC");
                while (res.next()) { // there is a result
                    output += formatListEntry(res);
                    output +="\n";

                }
            } catch (Exception e) {
                System.out.println(e);
                return null;
            }
            return output;
        }
public void exportCode(String File1){
     try {
                if ("Messages".equals(nameOfFile)){
                 fw = new FileWriter(f);   
                //what needs to be written here
                //fw.write(MessageData.listAll());
                fw.write(MessageData.Export_Message_Emails());
                    fw.close(); 

          }
}

不要使用硬编码值“\n”。而是使用 System.getProperty("line.separator"); 或者如果您使用 Java 7 或更大,您可以使用 System.lineSeparator();

尝试 String.format("%n") 而不是 "\n"

我假设您正在使用 Windows 并且您正在使用记事本打开文件。如果这是正确的,那么这并不是您的输出真正的问题,而是您正在查看它的编辑器的问题。

  1. 尝试使用更好的编辑器,即。记事本++
  2. 按照其他答案的建议进行操作并使用 System.getProperty("line.separator");或类似的。
  3. 使用 Writer 实现,例如 PrintWriter。

我个人更喜欢“\n”而不是系统行分隔符,后者在 Windows 上是“\r\n”。

编辑:添加选项 3

除非您正在尝试练习 Java 编程(这当然很好!),否则您可以从一个 table 中导出所有数据并将其存储在一个文件中,方法是使用SYSCS_UTIL.SYSCS_EXPORT_TABLE 系统过程:http://db.apache.org/derby/docs/10.11/ref/rrefexportproc.html