java 从数据库取数据并存入本地文本中
<p>要求如下:</p>1.连接数据库,取数据,weibo表中取出uid和text<p>2.<fontcolor="red">判断uid是否相同,如果相同,则把其对应的t...
<p>要求如下:</p>
1.连接数据库,取数据,weibo表中取出 uid和text<p>
2.<font color="red">判断 uid是否相同,如果相同,则把其对应的text存入路径为D:\data1的同一文件中,并且以此uid命名文件。</font>格式如下:<p>
<p>
<br/><br/>
3.表的样式如下:<p>
<p><br/><br/>
4.我自己已经写了连接数据库,取数据,weibo表中取出 uid和text这部分了,我用的是Map暂存数据,如下:<p>
```
public HashMap<String, String> selectFromDb() throws SQLException, UnsupportedEncodingException{
sql = "select * from weibo";
Connection conn = getConnect();
res = new HashMap<String, String>();//存uid的字符串map
try{
statement = conn.createStatement();//statement用来执行SQL语句
ResultSet rs = statement.executeQuery(sql);
String user_id = null;
String text = null;
while(rs.next()){
user_id = rs.getString("uid");//选择uid这列数据
text = rs.getString("text");//选择text这列数据
//首先使用ISO-8859-1字符集将name解码为字节序列并将结果存储新的字节数组中。
//然后使用GB2312字符集解码指定的字节数组
user_id = new String(user_id.getBytes("GBK"),"GB2312");
text = new String(text.getBytes("GBK"),"GB2312");
res.put(user_id, text);
//System.out.println(rs.getString("uid")+"\t"+topic+"\t"+text); //输出结果
}
rs.close();
statement.close();
conn.close();
}catch(SQLException e){
e.printStackTrace();
}
return res;
}
```
<p><br/>
5.现在就是要判断并且按uid存在本地文件中,希望大家给完整的代码,连接数据库的不需要了。
现在主要就是要遍历Map,比较uid,然后再存本地,这三件事 展开
1.连接数据库,取数据,weibo表中取出 uid和text<p>
2.<font color="red">判断 uid是否相同,如果相同,则把其对应的text存入路径为D:\data1的同一文件中,并且以此uid命名文件。</font>格式如下:<p>
<p>
<br/><br/>
3.表的样式如下:<p>
<p><br/><br/>
4.我自己已经写了连接数据库,取数据,weibo表中取出 uid和text这部分了,我用的是Map暂存数据,如下:<p>
```
public HashMap<String, String> selectFromDb() throws SQLException, UnsupportedEncodingException{
sql = "select * from weibo";
Connection conn = getConnect();
res = new HashMap<String, String>();//存uid的字符串map
try{
statement = conn.createStatement();//statement用来执行SQL语句
ResultSet rs = statement.executeQuery(sql);
String user_id = null;
String text = null;
while(rs.next()){
user_id = rs.getString("uid");//选择uid这列数据
text = rs.getString("text");//选择text这列数据
//首先使用ISO-8859-1字符集将name解码为字节序列并将结果存储新的字节数组中。
//然后使用GB2312字符集解码指定的字节数组
user_id = new String(user_id.getBytes("GBK"),"GB2312");
text = new String(text.getBytes("GBK"),"GB2312");
res.put(user_id, text);
//System.out.println(rs.getString("uid")+"\t"+topic+"\t"+text); //输出结果
}
rs.close();
statement.close();
conn.close();
}catch(SQLException e){
e.printStackTrace();
}
return res;
}
```
<p><br/>
5.现在就是要判断并且按uid存在本地文件中,希望大家给完整的代码,连接数据库的不需要了。
现在主要就是要遍历Map,比较uid,然后再存本地,这三件事 展开
若以下回答无法解决问题,邀请你更新回答
1个回答
展开全部
try {
File dir = new File("D:/data1");
if(!dir.exists())
dir.mkdirs();
for(Entry<String, String> entry : res.entrySet()){
FileOutputStream fos = null;
try {
fos = new FileOutputStream(new File(dir, entry.getKey()+".txt"));
fos.write(entry.getValue().getBytes());
fos.flush();
} catch (Exception e) {
} finally{
try {
if(fos!=null)
fos.close();
} catch (Exception e) {
}
}
}
} catch (Exception e) {
}
File dir = new File("D:/data1");
if(!dir.exists())
dir.mkdirs();
for(Entry<String, String> entry : res.entrySet()){
FileOutputStream fos = null;
try {
fos = new FileOutputStream(new File(dir, entry.getKey()+".txt"));
fos.write(entry.getValue().getBytes());
fos.flush();
} catch (Exception e) {
} finally{
try {
if(fos!=null)
fos.close();
} catch (Exception e) {
}
}
}
} catch (Exception e) {
}
追问
啊还有个小问题,就是想让数据库的每一条内容在文本里回车换行,我刚才查了一下,有的说要重新写个FileOutputStream的构造函数,我用fos.write("\r\n")也会报错,它说write()里是int型
追答
entry.getValue()+"\n"
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询