为什么我这个文本文件第一行读不出来?在线等

lixj2009 2008-12-05 10:01:34
public void readFile(String fileName) {
Connection con=null;
String sql="";
PreparedStatement ps=null;
con=JDBCUtil.getConnection();
String a=null;
String b=null;

try {
File file = new File(fileName);
FileReader readIn = new FileReader(file);
BufferedReader br = new BufferedReader(readIn);
String s1 = null;
//int line=0;
if((s1=br.readLine())==null){
JOptionPane.showMessageDialog(this,"此文件无内容,请重新选择!",
"Message Dlg",JOptionPane.INFORMATION_MESSAGE);
}else{
while((s1 = br.readLine()) != null)
{
//++line;
a=s1.substring(0, 43);
b=s1.substring(44, 49);
//System.out.println("开始导入!");
try {
sql="INSERT INTO TB_TEMP(Col001, Col002) VALUES ('"+a+"','"+b+"')";
ps=con.prepareStatement(sql);
ps.executeUpdate();
// System.out.println("导入ok!");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//System.out.println("line:"+line);
//System.out.println(a);
//System.out.println(b);
//System.out.println(s1);
}
br.close();
readIn.close();
JOptionPane.showMessageDialog(this,"此文件已经导入完成!",
"Message Dlg",JOptionPane.INFORMATION_MESSAGE);
}
} catch (IOException e) {
System.out.println("Error Opening file");
}finally{
JDBCUtil.close(null, ps, null, con);
}
}
...全文
189 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
lyboyc 2008-12-08
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 duhongltz 的回复:]
if((s1=br.readLine())==null){
while((s1 = br.readLine()) != null)
readline读了2次 第一行不见了。
[/Quote]

火眼金睛那,把while((s1 = br.readLine()) != null){ }
删掉就好了,这句多余。
9楼的纯粹瞎扯。
sfli_g 2008-12-06
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 duhongltz 的回复:]
if((s1=br.readLine())==null){
while((s1 = br.readLine()) != null)
readline读了2次 第一行不见了。
[/Quote]
如果就是是第一行不见了 原因应该是在这里
sebatinsky 2008-12-05
  • 打赏
  • 举报
回复
呵呵,楼主,你的判断null,不妥,应该像楼上的那样判断,或者是其他的根据需要的判断方式啊.你不是读不出来,是方式不对,你设置断点吧.楼主,断点的方式真是屡试不爽,呵呵,早点解决吧.
wm920 2008-12-05
  • 打赏
  • 举报
回复

数据的导入 他的坐标是从零开始滴·
zou_wei_forever 2008-12-05
  • 打赏
  • 举报
回复
这样试试:
FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);
String s1;
int l;
while((l = br.read()) != -1){
s1 = br.readLine();
a=s1.substring(0, 43);
b=s1.substring(44, 49);
sql="INSERT INTO TB_TEMP(Col001, Col002) VALUES ('"+a+"','"+b+"')";
ps=con.prepareStatement(sql);
ps.executeUpdate();
bw.newLine();

}
lixj2009 2008-12-05
  • 打赏
  • 举报
回复
是的,每一行都是这么多字符的
lyboyc 2008-12-05
  • 打赏
  • 举报
回复
没看出什么,你的文件一行就49个字符?文件末尾行也那么长?
duhongltz 2008-12-05
  • 打赏
  • 举报
回复
if((s1=br.readLine())==null){
while((s1 = br.readLine()) != null)
readline读了2次 第一行不见了。
myjava_024 2008-12-05
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 wm920 的回复:]


给你准确的答案吧。

去看 http://topic.csdn.net/u/20081205/00/bf825309-bfb7-46c0-bbbf-dd1fdfd9f8dd.html
[/Quote]
写的不错
wm920 2008-12-05
  • 打赏
  • 举报
回复

结贴吧。
wm920 2008-12-05
  • 打赏
  • 举报
回复


给你准确的答案吧。

去看 http://topic.csdn.net/u/20081205/00/bf825309-bfb7-46c0-bbbf-dd1fdfd9f8dd.html
lixj2009 2008-12-05
  • 打赏
  • 举报
回复
打出来的结果就是第一行记录没有
lixj2009 2008-12-05
  • 打赏
  • 举报
回复
bw.newLine();
?
lyboyc 2008-12-05
  • 打赏
  • 举报
回复
判断null的没问题啊,坐标也没问题。把s1打出来看看是什么

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧