java读取TXT文件保存到数据库中

java读取TXT文件

java读取txt文件内容。可以作如下理解:

  1. 首先获得一个文件句柄。File file = new File();file即为文件句柄。两人之间连通电话网络了。接下来可以开始打电话了。

  2. 通过这条线路读取甲方的信息:new FileInputStream(file)目前这个信息已经读进来内存当中了。接下来需要解读成乙方可以理解的东西

  3. 既然你使用了FileInputStream()。那么对应的需要使用InputStreamReader()这个方法进行解读刚才装进来内存当中的数据

  4. 解读完成后要输出呀。那当然要转换成IO可以识别的数据呀。那就需要调用字节码读取的方法BufferedReader()。同时使用bufferedReader()的readline()方法读取txt文件中的每一行数据哈。

package taxidata;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;


public class ReadFile {

    publicstatic void readTxtFile(String filePath) {
       InfoBean infoBean=new InfoBean();
       try {
           String encoding = "GBK";
           File file = new File(filePath);
           if (file.isFile() && file.exists()){ //判断文件是否存在
               InputStreamReader read = new InputStreamReader(
                       new FileInputStream(file), encoding);//考虑到编码格式
               BufferedReader bufferedReader = new BufferedReader(read);
               String lineTxt = null;
                OperationDB operationDB=new OperationDB();
               while ((lineTxt = bufferedReader.readLine()) != null) {
                   String[] s=lineTxt.split(",");
                   infoBean.setLicense_num(s[0].toString());
                   infoBean.setRecordtime(s[1].toString());
                   infoBean.setSet_num(Integer.valueOf(s[2]));
                   infoBean.setSpeed(Integer.valueOf(s[3]));
                   infoBean.setElevation(Double.valueOf(s[4]));
                   String location="point"+"("+Double.valueOf(s[6])+""+Double.valueOf(s[5])+")";
                   infoBean.setLocation(location);
                  
                   operationDB.addRcorder(infoBean);       
                   System.out.println(lineTxt);
                   
               }
               read.close();
           } else {
               System.out.println("找不到指定的文件");
           }
       } catch (Exception e) {
           System.out.println("读取文件内容出错");
           e.printStackTrace();
       }
    }
}

JAVA连接数据库 类

package taxidata;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;


public class BeyondbConnection {
public static Connection getConnection() {

Connection con = null;
String url = "jdbc:beyondb://localhost:II7/store ";
String user = "suo";
String password = "123456";

try {

con = DriverManager.getConnection(url, user, password);
} catch (SQLException ex) {
Logger.getLogger(BeyondbConnection.class.getName()).log(Level.SEVERE,null, ex);
}
return con;

}
}

InfoBean类创建 类

package taxidata;


public class InfoBean {

String license_num;
String recordtime;
int set_num;
int speed;
Double elevation;
String location;

public InfoBean() {
}

public String getLicense_num() {
return license_num;
}

public void setLicense_num(String license_num) {
this.license_num = license_num;
}

public String getRecordtime() {
return recordtime;
}

public void setRecordtime(String recordtime) {
this.recordtime = recordtime;
}

public int getSet_num() {
return set_num;
}

public void setSet_num(int set_num) {
this.set_num = set_num;
}

public int getSpeed() {
return speed;
}

public void setSpeed(int speed) {
this.speed = speed;
}

public Double getElevation() {
return elevation;
}

public void setElevation(Double elevation) {
this.elevation = elevation;
}

public String getLocation() {
return location;
}

public void setLocation(String location) {
this.location = location;
}
}

 

数据库操作(向数据库添加数据) 类

 package taxidata;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;


public class OperationDB {
       private Connection con = null;
    public void addRcorder(InfoBean infoBean) throws SQLException{
        if(con ==null){
             con = BeyondbConnection.getConnection();
        }
       
       String sql = "insert into taxidatavalues(?,?,?,?,?,st_geomfromtext(?))";
     
           PreparedStatement pstmt = con.prepareStatement(sql);
           pstmt.setString(1, infoBean.getLicense_num());
           pstmt.setString(2, infoBean.getRecordtime());
           pstmt.setInt(3, infoBean.getSet_num());
           pstmt.setInt(4, infoBean.getSpeed());
           pstmt.setDouble(5, infoBean.getElevation());
           pstmt.setString(6,infoBean.getLocation());
           
           pstmt.executeUpdate();   
    }
}

测试主函数 类

 package taxidata;


public class Text {

   
    publicstatic void main(String[] args) {
       String filePath = "C:\\GPS_2012_07_01.TXT";
       ReadFile readFile=newReadFile();  
       readFile.readTxtFile(filePath);
    }
}

 

 //过滤txt中的空行等符号

 

BufferedReader reader  new  BufferedReader( new  FileReader( "test.txt" ));
PrintStream writer  new  PrintStream( new  FileOutputStream( "test_new.txt" ));
String buf;
while  ((buf=reader.readLine()) !=  null {
     if  (buf.isEmpty()) { continue ;}
     if  (buf.matches( "[/]+.*" )) {
         buf buf.replaceAll( "[/]+(.*)" "$1" );  //去掉前面的/
     }
     buf buf.replaceAll( "\\s+(.*)" $ 1 );  //去掉前面的空格
     writer.println(buf);
}
reader.close();
writer.flush();
writer.close();
 
 或者下面用下面的代码 
 
  if  (buf.isEmpty()) { continue ;}
     buf buf.replaceAll( "^\\s*([^\\s]*)" "$1" );  //这样可能保险一些,防止注释的前面有空格
     if  (buf.matches( "^[/]+.*" )) {
         buf buf.replaceAll( "^[/]+(.*)" "$1" );  //去掉前面的/
     }
     buf buf.replaceAll( "^\\s*([^\\s]*)" "$1" );  //去掉前面的空格
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值