因为有题目说的需求,所以自己写了一个小程序尝试了一下,成功了。但对大数据处理的效果应该不会很好吧,还需要改进。
1.这是自己建的一个测试数据库。
2.这是转换的程序。
- import java.io.BufferedWriter;
- import java.io.FileNotFoundException;
- import java.io.FileOutputStream;
- import java.io.OutputStreamWriter;
- import java.sql.DriverManager;
- import java.sql.ResultSet;
- import java.sql.Statement;
- import java.util.ArrayList;
- public class DataIntoCSV{
- public static void main(String[] args){
- int index;
- ArrayList dataList=null;
- String CSVFileName="ratingdata.csv";
- BufferedWriter bufferedWriter=null;
- try{
- dataList=new ArrayList();
- Class.forName("com.mysql.jdbc.Driver");
- java.sql.Connection connect=DriverManager.getConnection("jdbc:mysql://localhost:3306/recomdatabase","root","123456");
- Statement stmt=connect.createStatement();
- ResultSet rs=stmt.executeQuery("select * from preferences");
- while(rs.next()){
- //System.out.println(" "+rs.getString("userID"));
- // System.out.println(" "+rs.getString("movieID")+" ");
- // System.out.print(" "+rs.getString("preference"));
- dataList.add(rs.getString("userID"));
- dataList.add(rs.getString("movieID"));
- dataList.add(rs.getString("preference"));
- }
- try{
- bufferedWriter=new BufferedWriter(new OutputStreamWriter(
- new FileOutputStream("D://dataset//"+CSVFileName),"SHIFT_JIS"));
- for(index=0;index<dataList.size();index++){
- if(index%3!=2)
- { bufferedWriter.write(new String ((dataList.get(index)+",").getBytes("SHIFT_JIS")));}
- else{
- bufferedWriter.write(new String((dataList.get(index)+"\r\n").getBytes("SHIFT_JIS")));
- }
- }
- bufferedWriter.flush();
- bufferedWriter.close();
- }catch(FileNotFoundException e){
- e.printStackTrace();
- }
- // for(int n =0;n<dataList.size();n++){
- // System.out.println(dataList.get(n));
- // }
- }catch(Exception e){
- e.printStackTrace();
- }
- }
- }
3.这是生成的文件结果。
希望有改进的好的方法,大家给我留言,谢谢!