在这里我选择了Oracle数据库。
1.在数据库中建立一张表用来存储目标文件
create table SaveFile (fileName varchar2(1024));
2.编写Java程序(我写了两种方式备份到文件中和数据库中)
package Demo;
import java.io.*;
import java.sql.*;
import java.util.*;
public class writeListToFile {
/**
* 将文件夹内的文件的目录复制到另一文件夹内
* 或者上传到Oracle数据库中的良种方式
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
File dir = new File("E:\\Java\\HM\\src");
List<File> list = new ArrayList<File>();
fileTolist(dir,list);
//System.out.println(list.get(0));
// System.out.println(list.size());
//备份到文件的操作
// File filename = new File(dir,"writeToList.txt");
// writeToList(list, filename.toString());
//备份到数据库的操作
for(int i=0;i<list.size();i++)
{
String sql = "insert into SaveFile values('"+list.get(i)+"')";
SQLHelper sqlhelper = new SQLHelper();
sqlhelper.InsertFile(sql);
}
}
public static void fileTolist(File dir,List<File> list)
{
File []files = dir.listFiles();
for (File f : files)
{
if (f.isDirectory())
{
fileTolist(f,list);
}
else
{
if (f.getName().endsWith(".java"))
{
list.add(f);
}
}
}
}
public static void writeToList(List<File> list,String filename)
{
BufferedWriter br = null;
try {
br = new BufferedWriter(new FileWriter(filename));
for (File f:list)
{
String path = f.getAbsolutePath();
br.write(path);
br.newLine();
br.flush();
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
finally
{
try {
if (br!=null)
{
br.close();
}
} catch (Exception e2) {
// TODO: handle exception
e2.printStackTrace();
}
}
}
}
class SQLHelper
{
String url="jdbc:oracle:thin:@127.0.0.1:1521:XE";
String driver="oracle.jdbc.driver.OracleDriver";
String username = "yinnq";
String pwd = "yinnq";
public void InsertFile(String sql)
{
Connection ct=null;
PreparedStatement ps=null;
try {
//加载驱动
Class.forName(driver);
//注册链接
ct = DriverManager.getConnection(url, username, pwd);
//创建PreparedStatement对象
ps = ct.prepareStatement(sql);
int n = ps.executeUpdate();
if (n != 0)
{
System.out.println("数据更新成功!");
}
else
{
System.out.println("数据更新失败!");
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally
{
try {
if (ps != null)
{
ps.close();
}
if (ct != null)
{
ct.close();
}
} catch (Exception e2) {
// TODO: handle exception
e2.printStackTrace();
}
}
}
}
结果:
更新1条数据!
更新1条数据!
更新1条数据!
更新1条数据!
更新1条数据!
还有一个目的就是可以利用保存的文件的内容去查找你想要的文件路径,非常快