java导入txt
Java中将txt文件导入到mysql基本的思路,操作流获取到文件具体信息,然后将信息拼接成mysql插入到数据库中。
㈡ 将.txt文件中的数字 导入java中
这里不成功可能有以下几个原因:
1、你的java没有配置好环境变量。
方法:在命令行,测试输入java,javac,看看是不是正常;
2.你代码里面要有读写文件的流的语句,即要加入FileInputStream语句啊,不加的话,java程序没法读文件的。
3你的input.txt路径没有配对,如果你的input.txt文件不在你的C盘用户目录下,需要配置路径,比如
input.txt在D盘,需要改成D:\input.txt
㈢ 用java导入txt数据到sql server中
这个很简单啊,
通过文件流一行一行的读
每行的字符串通过replaceAll空格(可能是 )替换成特殊字符,注意:要用正则替换连续的空格(或 )
然后通过split这个特殊字符成数组
数组转成表映射对象
批量插入数据库
㈣ 用java代码把txt文档中资料导入到数据库
BufferedReader input;
try {
String s = new String();
input = new BufferedReader(new FileReader("f:\\123.txt"));
while ((s = input.readLine()) != null) { // 判断是否读到了最后一行
String info[] = s.split(" ");
System.out.println( info[0] + " " + info[1] + " " + info[2] );
}
input.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
把info[0] + " " + info[1] + " " + info[2] 这三个值放在insert语句里就行了 经过测试
㈤ Java中如何提取TXT文件数据并讲数据导入到数组里...急求
publicstaticvoidmain(String[]args)throwsFileNotFoundException{
Scannerscanner=newScanner(newFileInputStream("d:/data.txt"));//通过FileInputStream构建Scanner
ArrayList<Integer[]>integerDataList=newArrayList<>();//初始化数据存放list,arrayList中的每一项是一条数据
while(scanner.hasNext()){
Stringline=scanner.nextLine();//读入一行数据
String[]datas=line.split(",");//根据逗号分隔字符串
if(datas.length!=3){
//如果分割后的数据不足三个,说明数据错误,抛弃本条数据
continue;
}
//构建integer类型数组,保存本行数据
Integer[]integerData=newInteger[3];
//通过Integer.valueOf方法将字符串转换为整型数字
integerData[0]=Integer.valueOf(datas[0]);
integerData[1]=Integer.valueOf(datas[1]);
integerData[2]=Integer.valueOf(datas[2]);
//将本行数据添加到所有数据的集合中
integerDataList.add(integerData);
}
//输出所有数据
for(Integer[]integerData:integerDataList){
System.out.println(Arrays.toString(integerData));
}
}
㈥ java 怎么导入txt的数据
txt文件里格式是什么样的?
import java.nio.file.*;
import java.io.*;
import java.util.stream.*;
try(var writer = new PrintWriter("/tmp/numbers.txt")){
IntStream.rangeClosed(200, 20000).forEach(writer::println); //生成一个每行一个整数的文本文件
Files.lines(Paths.get("/tmp/numbers.txt")).mapToInt(Integer::parseInt).toArray(); // 将文件中的数字读到一个数组里
} catch(Exception e){
e.printStackTrace();
}
㈦ java中的txt导入出现中文乱码
你现在是以UTF-8的形式去读取文件
你换一下,用GBK吧,应该文件的编码问题
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(fis,"UTF-8"))就是这行代码
㈧ java读取、修改、写入txt文件
模拟:先创建一个TXT文件(内容来自控制台);然后读取文件并在控制台输出;最后实现对新创建的TXT文件(的数据进行排序后)的复制。分别对应三个函数,调用顺序需要注意:创建、读取、复制。
效果图如下:绿色部分为控制台输入的内容(当输入end时,结束)
packagecom.;
importjava.io.BufferedReader;
importjava.io.File;
importjava.io.FileNotFoundException;
importjava.io.FileOutputStream;
importjava.io.FileReader;
importjava.io.IOException;
importjava.io.OutputStreamWriter;
importjava.util.Arrays;
importjava.util.Scanner;
importjava.util.Vector;
publicclassCreateAndReadTxt{
//文件名称
publicstaticStringfileName=".txt";
publicstaticStringnewFileName=".txt";
//文件路径
publicfinalstaticStringURL=System.getProperty("user.dir");
//CreateAndReadTxt.class.getResource("/").getPath();
//创建TXT文件
publicstaticvoidcreateTxtFile(StringfName,StringfileContent){
//创建文件
fileName=fName+fileName;
Filefile=newFile(fileName);
//可以更改
file.setWritable(true);
//判断当前路径下是否存在同名文件
booleanisExist=file.exists();
if(isExist){
//文件存在,删除
file.delete();
}
//写入文件
try{
//文件写入对象
FileOutputStreamfos=newFileOutputStream(file);
//输入流写入----默认字符为GBK
OutputStreamWriterosw=newOutputStreamWriter(fos);
//写入
osw.write(fileContent);
//写入完毕后关闭
osw.close();
System.out.println("成功创建文件: "+fileName);
}catch(IOExceptione){
System.out.println("写入文件失败: "+e.getMessage());
}
}
//阅读文件
publicstaticvoidreadFile(StringfileName){
System.out.println("开始读取文件: "+fileName);
//产生文件对象
Filefile=newFile(fileName);
//
try{
//字符读取
FileReaderfr=newFileReader(file);
//缓冲处理
BufferedReaderbr=newBufferedReader(fr);
Stringstr="";
while((str=br.readLine())!=null){
System.out.println(str);
}
//关闭
br.close();
fr.close();
}catch(FileNotFoundExceptione){
System.out.println("读取文件失败: "+e.getMessage());
}catch(IOExceptione){
System.out.println("读取文件失败: "+e.getMessage());
}
}
//文件复制
publicstaticvoidFile(StringfromFileName,StringtoFileName){
//读取文件
Filefile=newFile(fromFileName);
try{
FileReaderfr=newFileReader(file);
BufferedReaderbr=newBufferedReader(fr);
//定义接收变量
Vector<Double>vec=newVector<Double>();
Strings="";
while(null!=(s=br.readLine())){
vec.add(Double.parseDouble(s));
}
br.close();
fr.close();
//保存到数组并进行排序
Doubledou[]=newDouble[vec.size()];
vec.toArray(dou);
Arrays.sort(dou);
System.out.println("========复制文件=========");
//写入新文件
newFileName="副本"+newFileName;
FilenewFile=newFile(toFileName);
FileOutputStreamfos=newFileOutputStream(newFile,true);
OutputStreamWriterosm=newOutputStreamWriter(fos);
for(Doubled:dou){
osm.write(d.doubleValue()+"
");
}
osm.close();
fos.close();
}catch(FileNotFoundExceptione){
System.out.println("读取文件失败: "+e.getMessage());
}catch(IOExceptione){
System.out.println("读取文件失败: "+e.getMessage());
}
}
publicstaticvoidmain(String[]args){
/**
*构造数据
*/
Scannerscan=newScanner(System.in);
StringBuildersb=newStringBuilder();
Strings="";
while(!("end".equals(s=scan.next()))){//当输入end时,结束
sb.append(s);
sb.append("
");
}
scan.close();
/**
*使用数据
*/
CreateAndReadTxt.createTxtFile("creat",sb.toString());
CreateAndReadTxt.readFile(fileName);
System.out.println(fileName);
CreateAndReadTxt.File(fileName,newFileName);
CreateAndReadTxt.readFile(newFileName);
}
}
㈨ 用java如何将txt文件导入mysql
Java中将txt文件导入到mysql基本的思路就是先使用I/O操作流获取到文件具体信息,然后将信息拼接成mysql插入到数据库中,示例如下:
1、先读取txt文件的内容,文件内容可以按照一定的规律进行排列,这样程序读取就方便。
import java.io.IOException;
import java.io.RandomAccessFile;
import java.io.UnsupportedEncodingException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import com.config.Constants;
import com.utils.UUIDUtil;
/**
* txt文本数据 采集类
*
* @see
*/
public class UserDataGather {
public static final String TXT_FILE_PATH = "D://testUser.txt";
public static final String openFileStyle = "r";
public static final String fieldLimitChar = ".";
public static final int fieldAllCount = 1;
public static final String default_password = "PTMD0309";
public Integer count = 0;
private String FltNum;
public String UUID;
/**
* 功能:解析文本文件
*/
public void loadFile() {
try {
RandomAccessFile raf = new RandomAccessFile(TXT_FILE_PATH, openFileStyle);
String line_record = raf.readLine();
while (line_record != null) {
// 解析每一条记录
parseRecord(line_record);
line_record = raf.readLine();
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 功能:具体解析每一条记录,这里可以增加很多对记录的解析判断条件,如是否为字母、
*/
@SuppressWarnings("static-access")
private void parseRecord(String line_record) throws Exception {
//拆分记录
// String[] fields = line_record.split(fieldLimitChar);
// System.out.println(tranStr(line_record)+"Ok");
String temp = line_record.substring(line_record.indexOf(fieldLimitChar, 0), line_record.indexOf(" ", line_record.indexOf(fieldLimitChar, 0)));
// if (fields.length == fieldAllCount) {
//
FltNum = tranStr(temp).trim().replace(fieldLimitChar,"").replace(" ","");
// System.out.println(FltNum);
if(FltNum.length()>=4){
if(!isNumeric(FltNum)){
// System.out.println(generateSql(FltNum)[0].toString());
// System.out.println(generateSql(FltNum)[1].toString());
count++;
String[] temp1 = generateSql(FltNum);
MyFile mf = new MyFile();
mf.creatTxtFile("insertPinTuUserSql");
mf.writeTxtFile(temp1[0].toString());
mf.creatTxtFile("UUID");
mf.writeTxtFile(temp1[1].toString()+",");
}
}else if(FltNum.length() ==2 || FltNum.length() ==3){
if(!isNumeric(FltNum)){
if(!isTwoCharacter(FltNum)){
// System.out.println(generateSql(FltNum)[0].toString());
// System.out.println(generateSql(FltNum)[1].toString());
count++;
String[] temp2 = generateSql(FltNum);
MyFile mf = new MyFile();
mf.creatTxtFile("insertPinTuUserSql");
mf.writeTxtFile(temp2[0].toString());
mf.creatTxtFile("UUID");
mf.writeTxtFile(temp2[1].toString()+",");
}
}
}
// InsertDB db = new InsertDB();
//
// db.insertDB(FltNum);
// }
}
@SuppressWarnings("static-access")
public String[] generateSql(String userName) throws IOException{
StringBuffer sbf = new StringBuffer();
String[] str = new String[2];
String uuid = UUIDUtil.getUUID();
sbf.append("insert into user values('"+uuid+"','" + userName +"','"+default_password+"',"+Constants.ENABLED+","+Constants.NUllDELETE+","+Constants.AUDITING+",'"+uuid+"@164.com','"+formatDateTime()+"',"+Constants.REGEDIT_USER+");/n");
sbf.append("insert into users values('"+uuid+"',"+ null+","+Constants.MALE+","+null+","+null+",'60.176.36.250','"+formatDateTime()+"',"+null+","+null+","+null+","+null+","+null+","+null+",0,"+null+","+null+",0,0,0,'"+formatDateTime()+"','1036',0,"+null+","+null+","+null+","+null+","+null+",'11',"+null+","+null+","+null+","+null+","+null+");/n");
sbf.append("insert into user_user_group values('"+uuid+"','"+ uuid +"','"+Constants.PERSONAL_USER+"');/n");
UUID = uuid;
str[0]=sbf.toString();
str[1]=UUID;
return str;
}
public String formatDateTime(){
Date date = new Date();
/**
* 时间格式化2009-12-31 09:04:31
*/
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(sdf.format(date));
return sdf.format(date);
}
private String tranStr(String oldstr) {
String newstr = "";
try {
newstr = new String(oldstr.getBytes("ISO-8859-1"), "utf-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return newstr;
}
public static boolean isNumeric(String str){
Pattern pattern = Pattern.compile("[0-9]*");
return pattern.matcher(str).matches();
}
public static boolean isTwoCharacter(String str){
String regEx="[a-zA-Z0-9]{2,3}";
Pattern p=Pattern.compile(regEx);
Matcher m=p.matcher(str);
return m.find();
}
}
2、连接数据库执行数据导入
import java.sql.DriverManager;
import java.sql.ResultSet;
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Statement;
/**
* 插入数据库 生成sql语句
*
* created on Mar 8, 2010
* @see
*/
public class InsertDB {
private static final String user = "pintu";
private static final String pwd = "pintu";
private static final String url = "jdbc:mysql://192.168.10.6:3306/pintu";
private static final String driver = "com.mysql.jdbc.Driver";
public static Connection getCon() {
Connection con = null;
try {
Class.forName(driver).newInstance();
con = (Connection) DriverManager.getConnection(url, user, pwd);
if (con != null) {
System.out.println("你已连接到数据库:" + con.getCatalog());
}
} catch (Exception e) {
System.out.println("连接数据库失败!");
e.printStackTrace();
}
return con;
}
public boolean insertDB(String FltNum) {
Connection con = null;
Statement stm = null;
boolean flag = false;
String sql = "insert into t_FltPsgInfo values('" + FltNum +
// "','"
// + FltLine + "','" + FltDate + "','" + PsgName + "','" + PsgType
//
// + "','" + PsgSex + "','" + PsgCab + "','" + PsgSeatNo + "','"
//
// + PsgInfo +
"')";
try {
con = getCon();
stm = (Statement) con.createStatement();
int i = stm.executeUpdate(sql);
if (i > 0) {
flag = true;
System.out.println(flag + "插入数据成功!");
}
} catch (Exception e) {
flag = false;
e.printStackTrace();
} finally {
close(null, stm, con);
}
return flag;
}
//关闭相关连接
public void close(ResultSet rs, Statement stm, Connection con) {
if (rs != null)
try {
rs.close();
} catch (Exception e) {
e.printStackTrace();
}
if (stm != null)
try {
stm.close();
} catch (Exception e) {
e.printStackTrace();
}
if (con != null)
try {
con.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
㈩ java向txt中插入数据
在不读取文件内容的前提下插入行,用PrintWriter是做不到的。
PrintWriter只能从头写,或者从尾部追加。
你这个想法可以用RandomAccessFile或许可以实现,不过很麻烦。
最简单的就是读出每行文本,放到集合里,然后在指定的索引处插入行。