站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2SE 专题从本地硬盘读取一个.txt文件,并显示文件的路径,然后把内容写到数据库中,怎么做?

从本地硬盘读取一个.txt文件,并显示文件的路径,然后把内容写到数据库中,怎么做?

摘要: 从本地硬盘读取一个.txt文件,并显示文件的路径,然后把内容写到数据库中,怎么做?


本人想做一个C/S系统,从本地硬盘读取一个.txt文件,并显示文件的路径,然后把内容写到数据库中,怎么做?请各位大虾给个思路,有源代码最好,谢谢!


这个不难吧,数据库是在本地吗?网络的我还不会,还没学,哈哈!
如果是本地的话,用File类来定义文件,FileInputStream或者BufferRead来读取文件内容。
数据库JDBC-ODBC桥的话简单点,如果用纯JAVA连接的话,要倒入连接包,名字忘记了。
呵呵,新手,才学到这么多


1.读取用FileInputStream就行
2.显示文件路径是JFileChooser控件有的功能
3.内容写到数据库,最好文件中用分隔符把数据按字段隔开,先生成INSERT语句(注意重复数据),用JDBC操作就可以了


这个是把文件夹下所有txt文件递归的读了,你改简单一下就OK
--------------------------
import java.sql.*;
import java.io.*;

public class txtdb_over
{
public static void operate(String paths)
{

File d = new File(paths);
//取得当前文件夹下所有文件和目录的列表
File lists[] = d.listFiles();
//用另外一个String保存当前文件路径,以便递归
String pathss = paths;
int count = 1;
//对当前目录下面所有文件进行检索
for(int i = 0; i < lists.length; i ++)
{
if(lists[i].isFile())
{
String filename = lists[i].getName();
String filetype = new String("");

//取得文件类型
filetype = filename.substring((filename.length() - 3), filename.length());

//判断是否为txt文件
if(filetype.equals("txt"))
{

System.out.println("当前正在读取第" + count + "个文件......");
count ++;
//打印当前目录路径
System.out.println("目录:" + paths);
//打印txt文件名
System.out.println("文件:" + filename.substring(0, (filename.length() - 4)));
//存储到数据库中的信息
String dbtxtname = new String(filename.substring(0, (filename.length() - 4)));
String dbtxtcontent = new String("");
//使得dbtxtcontent中取得txt文件的内容
try
{

FileReader fr = new FileReader(paths + "//" + filename);
BufferedReader br = new BufferedReader(fr);
//读取一行数据
String Line = br.readLine();

while(Line!=null)
{
dbtxtcontent += Line;

//判断字符串里面是否含有"如果有则以“代替
if(dbtxtcontent.indexOf('"') > 0)
dbtxtcontent = dbtxtcontent.replace('"','“');

//接着读取下一行
Line = br.readLine();
}
br.close();
fr.close();
}
catch(IOException e)
{
System.err.println("Error Code:" + e);
}

boolean flag = false;
//进行数据库操作
try
{
//驱动程序
String driver = "sun.jdbc.odbc.JdbcOdbcDriver";

//数据库服务器地址及数据库名
String url = "jdbc:odbc:mysqltxtdb";
Connection con = null;
Statement st;
ResultSet rs;

try
{
//声明数据库连接
Class.forName(driver).newInstance();
System.out.println("驱动接口连接成功!");

}
catch (Exception ex)
{
//进行错误处理
System.out.println("驱动连接失败!");
}

try
{

//连接数据库
con = DriverManager.getConnection(url,"root","");

st = con.createStatement();
//声明SQL
String SQL = "Insert into txtmsg value (default, /""
+ dbtxtname + "/"" + "," + "/""
+ dbtxtcontent + "/"" + ");" ;

//进行插入操作
try
{
rs = st.executeQuery(SQL);
System.out.println("对数据库操作成功!");
}
catch(SQLException e)
{
//System.err.println(e);
}
}
catch (Exception e)
{
//输出连接错误信息
e.printStackTrace();
}
//关闭连接
finally
{
if (con == null)
{
return;
}
try
{

con.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}

flag = true;
System.out.println("文件存储完毕!/n");

}
catch (Exception e)
{
System.err.println("Error CODE:" + e);
}

}

}
else
{
if(!pathss.equals(paths))
{
pathss = paths;
//进入下一级目录
pathss = pathss + lists[i].getName() + "//";
//递归遍历所有目录
operate(pathss);
}

}
}

}

public static void main(String[] args)
{
//String paths = new String("D://Work//2004.10.8//test system//test01//txt//");
String paths = new String("D://test//txt//");

operate(paths);
}
}



java.io.File file=new java.io.File("c://a.txt");
String file_str="";
byte[] bytes = null;
try {
java.io.BufferedInputStream bis = new java.io.BufferedInputStream(new
java.
io.FileInputStream(file));
int n = (int) file.length();
bytes = new byte[n];
bis.read(bytes);

file_str = new String(bytes);
}
catch (IOException ex) {
ex.printStackTrace();
}
//读取文件完成,把文件写如数据库

String sql="insert into table(file_content) values('"+file_str+"')";
执行SQL写入数据库


大家都好热心,我这是第一次提问题,遇到这么多热心的大虾真的好开心!我不知道怎么散分,到时候我会给各位的。
我的数据库是本地的,SQL server, 经理想要有界面的,方便操作,最好用SWT包,我没用过,还请各位大虾帮忙,小弟弟谢谢各位了。


↑返回目录
前一篇: long time=25*86400000
后一篇: ANT安装、配置