java读取文件内容到oracle

REPORT:DFERRORGENERATED:10JUN200512:34RUN:PAGE1日期:20030210调整批量处理卡号姓名交易类型补帐/撤销币种调整金额需调... REPORT: DFERROR GENERATED: 10 JUN 2005 12:34 RUN: PAGE 1
日期 :20030210 调整批量处理

卡号 姓名 交易类型 补帐/撤销 币种 调整金额 需调整金额
原始交易金额 原始交易信息 交易描述 处理结果

1111111111111111 eeeee 1000 补帐 001 0.00 100.00-
0.00 /0000/000/00000000 币种非法
1111111111111112 wwwww 1000 补帐 001 0.00 100.00-
0.00 /0000/000/00000000 币种非法

把前面几行标题去掉,读取数据到数据库表,注意的是现在一条数据是两行,需要把两行处理成一行
展开
 我来答
飞蛋蛋
2009-06-17 · TA获得超过973个赞
知道小有建树答主
回答量:816
采纳率:0%
帮助的人:651万
展开全部
public static void main(String args[]) throws Exception {
// 数组的长度是一行记录的字段数,数组的每个值分别表示该字段的长度
// 根据你的文件要求改
int[] RecordStructure = new int[] { 16, 5, 4, 2, 3, 4, 6, 4, 19, 4 };
InputStreamReader b = new InputStreamReader(new FileInputStream(
new File("d:/test.txt")), "gbk");
// 最终结果
List<List> result = new ArrayList<List>();
// 存放一整条记录的中间变量
List<String> date = new ArrayList<String>();
int i = 0;
// 设置缓存区,记录中单个数据的长度不可超过缓存区的长度
String temp = "";
// 字段位置标志,范围:[0-你的字段数]
int fieldPosition = 0;
//标题的字符的行数 这里可以改!!!
int labelLength = 6;
BufferedReader a = new BufferedReader(b);
for(int j = 0; j < labelLength; j++) {
a.readLine();
}
while (true) {
i = a.read();
if (i == '\r' || i == '\n') {
continue;
} else {
temp += (char) i;
int fieldLength = RecordStructure[fieldPosition];
if (temp.length() >= fieldLength) {
fieldPosition += 1;
date.add(temp);
if (fieldPosition == RecordStructure.length) {
result.add(date);
fieldPosition = 0;
date = new ArrayList<String>();
}
temp = "";
}
}
if (i == -1) {
break;
}
}
for (int j = 0; j < result.size(); j++) {
System.out.println(Arrays.toString(result.get(j).toArray()));
}
b.close();
a.close();
}
寻找逆流的鱼
2009-06-17 · TA获得超过497个赞
知道小有建树答主
回答量:397
采纳率:0%
帮助的人:246万
展开全部
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

public class TestReadToDatabase {

public static List<String> readFile(String fileName, String charset) {
FileInputStream fis = null;
BufferedReader br = null;
InputStreamReader isr = null;
List<String> list = new ArrayList<String>();
try {
fis = new FileInputStream(fileName);
isr = new InputStreamReader(fis, charset);
br = new BufferedReader(isr);

String line = "";

while ((line = br.readLine()) != null) {
list.add(line);
}

} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}

return list;
}

public static void println(Object o) {
System.out.println(o);
}

public static void main(String[] args) throws SQLException {
List<String> list = readFile("E:\\test.txt", "utf-8");
String[] array = null;

String sql = "";
String id = "";
String name = null;
// 自己往下写数据库字段
int i= 0;
for (String s : list) {
array = s.split("\\s+");
i++;
id = array[0];
name = array[1];
// 自己往下写数据库字段
sql = "insert into testinsert(id,name)values(?,?)";
PreparedStatement stmt = DB.getPstmt(sql);//换成自己的数据库操作类
stmt.setString(1,id);
stmt.setString(2, name);

int j = DB.executeUpdate(stmt);
if (j!=0) {
println("插入成功");
}
}

}

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式