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

时间:2015-02-11 12:46:58

标签: java derby

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

我的代码

    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(); 

          }
}

4 个答案:

答案 0 :(得分:3)

请勿使用硬编码值“\ n”。而是使用System.getProperty("line.separator");或者如果您使用的是Java 7或更高版本,则可以使用System.lineSeparator();

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

  1. 尝试更好的编辑器,即。记事本++
  2. 按照其他答案建议并使用System.getProperty(“line.separator”);或类似的。
  3. 使用Writer实现,例如PrintWriter。
  4. 我个人更喜欢“\ n”而不是系统行分隔符,在Windows上是“\ r \ n”。

    编辑:添加了选项3

答案 3 :(得分:0)

除非您正在尝试练习Java编程(当然这很好!),您可以使用SYSCS_UTIL.SYSCS_EXPORT_TABLE系统过程从一个表导出所有数据并将其存储在文件中:{ {3}}