您的位置:首页 > 数据库

将txt文件内容(以utf-8)存储到数据库中

2014-03-23 15:51 417 查看
package com.test.javaSe01;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.io.UnsupportedEncodingException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Scanner;

/**
*
* @author Administrator
* @see txt中的内容是中文的(utf-8格式),将txt中的内容存储到数据库中
*/
public class JDBCClobTestDemo01 {
public static void main(String[] args) throws SQLException,
FileNotFoundException, ClassNotFoundException,
UnsupportedEncodingException {
String url = "jdbc:mysql://localhost:3306/test?unicode=true&characterEncoding=utf8";
String driver = "com.mysql.jdbc.Driver";
String user = "root";
String password = "root";

Connection conn = null;
PreparedStatement ps = null;
Statement st = null;
ResultSet rs = null;
String sql = "insert into userclob values(id,?,?)";
Class.forName(driver);
File file = new File("H:\\a.txt");
InputStream input = new FileInputStream(file);
Reader reader = new InputStreamReader(input, "utf-8");
conn = DriverManager.getConnection(url, user, password);
try {
ps = conn.prepareStatement(sql);
ps.setString(1, "ctl");
// setAsciiStream() setBlob() setCharacterStream()只可以存储英文不可以存储汉字
// ps.setAsciiStream(2, input, (int) file.length());
ps.setNCharacterStream(2, reader, file.length());
ps.executeUpdate();
sql = "select * from userclob";
rs = ps.executeQuery(sql);
while (rs.next()) {
System.out.print(rs.getInt(1) + "\t");
System.out.print(rs.getString(2) + "\t");
// getAsciiStream(), getCharacterStream()
// getString()都可以获取类型longtext中的数据
// Scanner scanner = new Scanner(rs.getAsciiStream(3));
// Scanner scanner = new Scanner(rs.getCharacterStream(3));
Scanner scanner = new Scanner(rs.getString(3));
scanner.useDelimiter("\r\n");
StringBuffer sb = new StringBuffer();
while (scanner.hasNext()) {
sb.append(scanner.next()).append("\n");
}
System.out.println(sb);
}
ps.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: