美文网首页
java对文件的操作如下

java对文件的操作如下

作者: 知识学者 | 来源:发表于2018-11-22 22:13 被阅读22次

读取一个txt的文件,放入数据库,然后再select出表格,在写成txt的操作。

package day20181122;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.InputStreamReader;

public class ReadTxt {
    
  private   String fileName="stu.txt";
  
  public ReadTxt(String fileName) {
    
      this.fileName=fileName;
//    System.out.println("cionstruct");
  }
    
    public void readFile()
    {
     
        try {
            File file=new File(fileName);
            
            InputStreamReader in;
            in = new InputStreamReader(new FileInputStream(file),"utf-8");
            
             
            BufferedReader br=new BufferedReader(in);
            
             String line="";
            
              line=br.readLine();
              
              
              while(line!=null)
              {
                  
                  String[] data=line.split(";");
                  
                  int len=data.length;
                  
                  for(int i=0; i<len; i++)
                      System.out.println(data[i]+"-------");
                  
                  System.out.println(line);
                  line=br.readLine();             
              }                
              br.close();
            
        } catch (Exception e) {
            
            e.printStackTrace();
        }   
    }
    
    
 public void writeTxt(String filed)
 {
     
     String writeFileName="src/day20181122/student.txt";
     
     try {
         
         File f=new File(writeFileName);
         if(f.exists())
         f.createNewFile(); 
         BufferedWriter bw=new BufferedWriter(new FileWriter(f));
         bw.write(filed);
         bw.flush();
         bw.close();
         System.out.println("write file succeed");   
         
     }catch(Exception e) {
         e.printStackTrace();
     }
      
 }
    
     

}


多文件放入数据库,然后再select文件,写入txt中。


import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class ReadTxt {
    
    /**
     * read file
     * @param fileName
     */
    
    public void readFile(String fileName)
    {
        
        //获取数据库的链接
        ConnDb cb=new ConnDb();
        Connection connection=null;
        //采用  PreparedStatement 效率高,安全
        PreparedStatement  prestmt=null;     
         try {
             connection= cb.getConnection();
             connection.setAutoCommit(false);
                
            } catch (Exception e1) {
                e1.printStackTrace();
            };
        
        
        int count=0;//作为计数器
     
        try {
            File file=new File(fileName);
            
            InputStreamReader in;
            in = new InputStreamReader(new FileInputStream(file),"GBK");
            
             
            BufferedReader br=new BufferedReader(in);
            
             String line="";
            
              line=br.readLine();
              prestmt=connection.prepareStatement("insert into studentd(sid,sname,classes,course,score) values(?,?,?,?,?)");
              
              long t1=System.currentTimeMillis(); //获取开始运行的时间
              
              while(line!=null)
              {
                  count++;
                  
                  String[] data=line.split(",");    
                  insertData(data,prestmt,connection,count);
                  
//                  System.out.println(line);
                  line=br.readLine();  
                  
                  if(count%1000==0)
                  {
                      long t2=System.currentTimeMillis(); //获取时间
                      System.out.println("程序插入1000条的时间: "+(t2-t1)+"ms");
                  }
              }  
              
              System.out.println("一共有的数据量为:"+count);
              
              connection.setAutoCommit(true);
              //关闭所有的流
              br.close();
              prestmt.close();
              connection.close();
            
        } catch (Exception e) {  
            e.printStackTrace();
        } 
 
    }
    

    //100条数据进行插入数据库
public void insertData(String[] das, PreparedStatement  prestmt,Connection connection,int times){
         
        try {
            prestmt.setString(1, das[0]);
            prestmt.setString(2, das[1]);
            prestmt.setString(3, das[2]);
            prestmt.setString(4, das[3]);
            prestmt.setString(5, das[4]);
            
            //批量提交
            prestmt.addBatch();
            
            if(times%100==0)
            {
                prestmt.executeBatch();
                System.out.println(times+"提交数据成功");
                connection.commit();
            }   
                        
//          prestmt.executeUpdate();
//          connection.commit();    
//           System.out.println("成功插入");

        } catch (Exception e) {
            
          System.out.println("字符串有问题"+e);
        }
            
    } 
    
    
public void selectDataWrite()
{
    String sql="select  sid,sname,classes,course,score from   student";
    String path="src/studentd.txt";
    
    PreparedStatement paret=null;
    ResultSet rs=null;
    ConnDb cb=new ConnDb();
    Connection connection=null;

    //文件的东西
    File f=new File(path);
    BufferedWriter bw=null;
    StringBuilder sb=new StringBuilder();
    
        try {
             if(!f.exists())
             {
               f.createNewFile();
               System.out.println("create file succeed");
             }
             
            bw=new BufferedWriter(new FileWriter(f));
            
        } catch (IOException e1) {
            e1.printStackTrace();
        } 
    
    
    try {
        connection=cb.getConnection();
        paret=connection.prepareStatement(sql);
        rs=paret.executeQuery();
        //行数
        int col = rs.getMetaData().getColumnCount();
        
     long t1=System.currentTimeMillis(); //获取开始运行的时间    
        while(rs.next())
        {
            
            for (int i = 1; i <= col; i++)
            {   
                System.out.print(rs.getString(i) + "\t");
                sb.append(rs.getString(i));          
            }
            sb.append("\r\n").append("--------------------------").append("\r\n");
            bw.write(sb.toString());
            System.out.println();
            
            //清空字符串
            sb.setLength(0);
        }
        
         long t2=System.currentTimeMillis(); //获取时间
         System.out.println("写文件的时间为: "+(t2-t1)+"ms");
        
        //关闭所有的流
        bw.close();
        paret.close();
        connection.close();
                
    }catch(SQLException | IOException e){
        e.printStackTrace();
    }
        
}

    
}   


相关文章

  • java对文件的操作如下

    读取一个txt的文件,放入数据库,然后再select出表格,在写成txt的操作。 多文件放入数据库,然后再sele...

  • HDFS之JAVA API学习笔记

    本文是对HDFS的JAVA API操作的一个学习总结,包括如下章节的内容: 概述 目录和文件操作 文件上传和下载 ...

  • 第17章 文件类

    Java提供了对操作系统中文件进行操作的文件类,其类名是java.io.File类,其中包含了对文件和目录(文件夹...

  • Java IO学习笔记总结

    Java IO学习笔记总结 前言 前面的八篇文章详细的讲述了Java IO的操作方法,文章列表如下基本的文件操作字...

  • Java深复制和浅复制

    Java:假设有如下文件House.java 于是,我们可以这样操作:House house1 = new Hou...

  • java学习路线

    javaSE java基础语法 java文件操作 java网络操作 java多线程 java数据库操作 java ...

  • Android数据存储

    (一)文件存储分类: 获取文件路径:内部路径和外部路径如下: 文件写操作如下: 文件读操作如下: 文件存储在设备上...

  • Java实现文件目录操作书目录

    Java实现文件目录操作之使用IO和NIO创建目录 Java实现文件目录操作之递归遍历目录和文件 Java实现文件...

  • Git 取消跟踪(untrack)

    在java项目中,如果 .idea 文件夹、target 文件夹 误提交了,想要取消跟踪,要按照如下步骤操作。 先...

  • Java NDK

    根据在Java类中声明的native方法,快速生成头文件 在AndroidStudio IDE界面中执行如下操作:...

网友评论

      本文标题:java对文件的操作如下

      本文链接:https://www.haomeiwen.com/subject/blvrqqtx.html