以下是我的代码:
<%@ page contentType="text/html;charset=GBK" import="java.io.RandomAccessFile,java.io.File,java.util.ArrayList,java.util.HashMap,java.util.Iterator"%><%@ page language="java" %>
<%@ page import="java.io.*" %>
<%@ page import="java.util.*" %>
<%@ page import="java.sql.*" %>
<%@ page import="javax.sql.*" %>
<%@ page import="javax.naming.*" %><%
//驱动程序名
String driverName="com.mysql.jdbc.Driver";
//数据库用户名
String userName="root";
//密码
String userPasswd="2421543";
//数据库名
String dbName="ipadds";
//表名
String tableName="ip";
//联结字符串
String url="jdbc:mysql://localhost/"+dbName+"?user="+userName+"&password="+userPasswd;
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection connection=DriverManager.getConnection(url);
Statement stmt = connection.createStatement();
RandomAccessFile dataFile=new RandomAccessFile(new File(application.getRealPath("./ip.txt")), "r");String line=dataFile.readLine();
while(line!=null)
{
line=new String(line.getBytes("ISO_8859_1"),"GBK");
String[] lineItems=line.split("\\t");
String sqlstr="insert into ip (ip1,ip2,add1,add2) values('"+lineItems[0]+"','"+lineItems[1]+"','"+lineItems[2]+"','"+lineItems[3]+"')";
//stmt.executeUpdate(sqlstr);
out.print(sqlstr);
line=dataFile.readLine();
}
dataFile.close();
stmt.close();
%>ip.txt中的文件格式如下:
0.0.0.0 0.255.255.255 IANA CZ88.NET
1.0.0.0 1.255.255.255 IANA CZ88.NET
2.0.0.0 2.255.255.255 IANA CZ88.NET
3.0.0.0 3.255.255.255 美国 新泽西通用电气公司
4.0.0.0 4.10.255.255 美国 CZ88.NET
4.11.0.0 4.11.255.255 美国 夏威夷
4.12.0.0 4.19.77.255 美国 CZ88.NET
4.19.78.0 4.19.78.255 美国 西南政法大学
4.19.79.0 4.19.79.63 美国 Armed Forces Radio/Television
4.19.79.64 4.21.177.111 美国 CZ88.NET
4.21.177.112 4.21.177.127 美国 Kraft Group
4.21.177.128 4.21.177.255 美国 南新汉普郡学院共有262465条记录
错误:
type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: 1
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:372)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause java.lang.ArrayIndexOutOfBoundsException: 1
org.apache.jsp.ipadd_jsp._jspService(ipadd
<%@ page contentType="text/html;charset=GBK" import="java.io.RandomAccessFile,java.io.File,java.util.ArrayList,java.util.HashMap,java.util.Iterator"%><%@ page language="java" %>
<%@ page import="java.io.*" %>
<%@ page import="java.util.*" %>
<%@ page import="java.sql.*" %>
<%@ page import="javax.sql.*" %>
<%@ page import="javax.naming.*" %><%
//驱动程序名
String driverName="com.mysql.jdbc.Driver";
//数据库用户名
String userName="root";
//密码
String userPasswd="2421543";
//数据库名
String dbName="ipadds";
//表名
String tableName="ip";
//联结字符串
String url="jdbc:mysql://localhost/"+dbName+"?user="+userName+"&password="+userPasswd;
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection connection=DriverManager.getConnection(url);
Statement stmt = connection.createStatement();
RandomAccessFile dataFile=new RandomAccessFile(new File(application.getRealPath("./ip.txt")), "r");String line=dataFile.readLine();
while(line!=null)
{
line=new String(line.getBytes("ISO_8859_1"),"GBK");
String[] lineItems=line.split("\\t");
String sqlstr="insert into ip (ip1,ip2,add1,add2) values('"+lineItems[0]+"','"+lineItems[1]+"','"+lineItems[2]+"','"+lineItems[3]+"')";
//stmt.executeUpdate(sqlstr);
out.print(sqlstr);
line=dataFile.readLine();
}
dataFile.close();
stmt.close();
%>ip.txt中的文件格式如下:
0.0.0.0 0.255.255.255 IANA CZ88.NET
1.0.0.0 1.255.255.255 IANA CZ88.NET
2.0.0.0 2.255.255.255 IANA CZ88.NET
3.0.0.0 3.255.255.255 美国 新泽西通用电气公司
4.0.0.0 4.10.255.255 美国 CZ88.NET
4.11.0.0 4.11.255.255 美国 夏威夷
4.12.0.0 4.19.77.255 美国 CZ88.NET
4.19.78.0 4.19.78.255 美国 西南政法大学
4.19.79.0 4.19.79.63 美国 Armed Forces Radio/Television
4.19.79.64 4.21.177.111 美国 CZ88.NET
4.21.177.112 4.21.177.127 美国 Kraft Group
4.21.177.128 4.21.177.255 美国 南新汉普郡学院共有262465条记录
错误:
type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: 1
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:372)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause java.lang.ArrayIndexOutOfBoundsException: 1
org.apache.jsp.ipadd_jsp._jspService(ipadd
解决方案 »
- 求助,在JavaScript中嵌套了jsp代码,js的参数怎么样传递到jsp问题
- javabeab取到的都是null值
- 很怪的java.lang.ClassNotFoundException问题
- 急问,IIS+Tomcat为何无法访问servlet,但jsp文件正常
- Java的函数编:程利用闭包和高阶函数编写模块化的 Java 代码
- myeclipse+struts+hibernate+oracle9i的数据库问题
- 初级问题?
- 关于网络监控的问题(N难 高手帮忙)
- >>>>>>求助:javax.servlet.ServletRequest.getParameter()问题!在线等待<<<<<<
- Bean的包装问题?(Tinking in java):invalid header field
- 急啊,在线等!!数据库编码问题?
- http://gcc001.mycool.net我的网站,友情链接有几个我的作品,我还没毕业,在公司做了3个月,工资800,经理说加工资没说加多少?没提转正的
应该是
String[] lineItems=line.split("\t");
吧。
这个是对的吧
我在其他程序里就是这样用的
即使改成这个也是同样的错误
因为只有 lineItems[0]
现在改成了这样:
<%@ page contentType="text/html;charset=GBK" import="java.io.RandomAccessFile,java.io.File,java.util.ArrayList,java.util.HashMap,java.util.Iterator"%><%@ page language="java" %>
<%@ page import="java.io.*" %>
<%@ page import="java.util.*" %>
<%@ page import="java.sql.*" %>
<%@ page import="javax.sql.*" %>
<%@ page import="javax.naming.*" %><%
//驱动程序名
String driverName="com.mysql.jdbc.Driver";
//数据库用户名
String userName="root";
//密码
String userPasswd="2421543";
//数据库名
String dbName="ipadds";
//表名
String tableName="ip";
//联结字符串
String url="jdbc:mysql://localhost/"+dbName+"?user="+userName+"&password="+userPasswd;
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection connection=DriverManager.getConnection(url);
Statement stmt = connection.createStatement();
RandomAccessFile dataFile=new RandomAccessFile(new File(application.getRealPath("./ip.txt")), "r");String line=dataFile.readLine();
int i=0;
while(line!=null)
{
line=new String(line.getBytes("ISO_8859_1"),"GBK");
String[] lineItems=line.split("\\t");
String str1=lineItems[0];
int ii=str1.indexOf(",");
String ip1=str1.substring(0,ii);
String str2=str1.substring(ii+1,str1.length());
ii=str2.indexOf(",");
String ip2=str2.substring(0,ii);
String str3="";
String str4="";
String add1="";
String add2="";
if((ii+1)>str2.length())
{
str3=str4="空";
}
else
{
str3=str2.substring(ii+1,str2.length());
ii=str3.indexOf(",");
add1=str3.substring(0,ii);
if((ii+1)>str3.length())
{
str4="空";
}
else
{
str4=str3.substring(ii+1,str3.length());
add2=str4;
}
}
//String sqlstr="insert into ip (ip1,ip2,add1,add2) values('"+ip1+"','"+ip2+"','"+add1+"','"+add2+"')";
//stmt.executeUpdate(sqlstr);
out.print(i+"=="+ip1+"-"+ip2+"-"+add1+"-"+add2+"<p>");
line=dataFile.readLine();
i++;
}
dataFile.close();
stmt.close();%>
我把原来的空格都替换成了一个,
但是只能读取部分数据,读188行后,就中断了,也没有错误提示