我需要将数据库表中的数据以文本文件保存,以下是代码片断:
public void save(String path) {
try {
con = ConnectionDateBase.getConnection();
stmt = con.createStatement();
rs = stmt.executeQuery("select * from Record");
while(rs.next()) {
try {
if (path != null) {
FileWriter out = new FileWriter(path);
BufferedWriter bw = new BufferedWriter(out);
bw.write(rs.getString(1) + "\t");
bw.write(rs.getString(2) + "\t");
bw.write(rs.getString(3) + "\t");
bw.write(rs.getString(4) + "\t");
bw.write(rs.getString(5) + "\t");
bw.write(rs.getString(6));
bw.newLine();
bw.close();
}
else {
filechooser.showSaveDialog(this);
path = filechooser.getSelectedFile().getAbsolutePath();
File file = new File(path);
file.createNewFile();
save(path);
}
}
catch (IOException e) {}
问题:表中有多条记录时,只能保存一条记录,其他的好像被覆盖了。请问:怎样才能保存全部记录?请基于本代码的基础。谢谢!
public void save(String path) {
try {
con = ConnectionDateBase.getConnection();
stmt = con.createStatement();
rs = stmt.executeQuery("select * from Record");
while(rs.next()) {
try {
if (path != null) {
FileWriter out = new FileWriter(path);
BufferedWriter bw = new BufferedWriter(out);
bw.write(rs.getString(1) + "\t");
bw.write(rs.getString(2) + "\t");
bw.write(rs.getString(3) + "\t");
bw.write(rs.getString(4) + "\t");
bw.write(rs.getString(5) + "\t");
bw.write(rs.getString(6));
bw.newLine();
bw.close();
}
else {
filechooser.showSaveDialog(this);
path = filechooser.getSelectedFile().getAbsolutePath();
File file = new File(path);
file.createNewFile();
save(path);
}
}
catch (IOException e) {}
问题:表中有多条记录时,只能保存一条记录,其他的好像被覆盖了。请问:怎样才能保存全部记录?请基于本代码的基础。谢谢!
/*************
if (path != null) {
FileWriter out = new FileWriter(path);
BufferedWriter bw = new BufferedWriter(out);
把个地方改下应该就可以了;具体代码我就不写了,没工具.
使用public FileWriter(File file,boolean append)在给出 File 对象的情况下构造一个 FileWriter 对象。如果第二个参数为 true,则将字节写入文件末尾处,而不是写入文件开始处。
将FileWriter out = new FileWriter(path);
BufferedWriter bw = new BufferedWriter(out);
改成:
File f=new File(path);
FileWriter out=new FileWriter(f,ture);
然后再用FileWriter相关的方法