现在我用一个String[]去获取一个文件夹下的所有jpg文件的文件名,但是每次最多只可以放入2672个文件,这是由于String[]本身限制的吗?
解决方案 »
- java 如何连接到 MS SQL 2008?
- 《---继续请教 如何随机挑选数组中的元素,而且保证每个元素都被选过 请问 paullbm 还在吗 ---》
- JAVA中混频器
- RSA加密Word文档的问题
- java里 怎么实现 用键盘事件 启动 paint?????????
- 急!!!!高手请进,有问题请教!
- 调用Oracle存储过程的问题???
- 一个简单问题,如何把java程序的变量写入文本文件但是不覆盖原有文件的内容??
- 如果没有vc6,那么可不可以做jni?
- 按钮在APPLETVIEW中没有,在HTML中却有,请问是什么问题?
- java调用 关机命令,怎么写正确?
- tomcat安装成功,可以打开tomcat页面,但是不能打开我自己写的JSP页面
* project_name: Test
* package_name: CSDN_Test_20071126
* package_declaration: package CSDN_Test_20071126;
* filename: StringLengthTest.java
* author: yuhaiming
* date: 2007-11-26
*/
package CSDN_Test_20071126;public class StringLengthTest { /**
* @param args
*/
public static void main(String[] args) {
//Integer.MAX_VALUE=2147483646
//String[] str = new String[Integer.MAX_VALUE];这么定义肯定超出内存
String[] str = new String[2673];
str[2672]="test";
System.out.println(str[2672]);
}}
//import java.*;
//import java.lang.*;
import java.sql.SQLException;
public class PixInput {
/**
* @param string
* @throws ClassNotFoundException
* @throws SQLException
* @throws SQLException
*/
public static void main(String[] args) throws ClassNotFoundException, SQLException {
if (args.length==0){ //判读路径是否为空
System.out.println("Please input the path");//返回空值错误
}else{
System.out.println("开始导入路径:"+args[0]);//开始导入提示
java.lang.Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//创建ODBC连接
java.sql.Connection con = null;//声明连接con
try {
con=java.sql.DriverManager.getConnection("jdbc:odbc:pixputin", "sa", "");//设置连接
} catch (SQLException e) {
// TODO Auto-generated catch block
System.out.println("SQLException error...");
e.printStackTrace();
}
java.sql.Statement stmt = null;
try {
stmt=con.createStatement();
} catch (SQLException e) {
// TODO Auto-generated catch block
System.out.println("SQLException1 error...");
e.printStackTrace();
}
int result;
java.lang.String filename;
File inputpath=new File(args[0]);//路径文件赋值
File tempinput;//设置循环用文件
if (inputpath.exists()){
System.out.println("路径检查正确,开始导入...");
//String[] filelist1=inputpath.list();
for (int i=0;i<inputpath.list().length;i++)
{
filename=inputpath.list()[i];
tempinput=new File(filename);//循环文件赋值
if (tempinput.isDirectory()) {
} else{
if ( filename.endsWith("jpg")){
// filename.substring(filename.length()-4, 4)==".jpg") {
System.out.println("正在导入文件:"+inputpath.list()[i]);
result=stmt.executeUpdate("insert into cp(cpbh) values('"+filename.substring(0,filename.length()-4)+"')");
if (result==1) {System.out.println("导入成功!");}
}
} }
}else{
System.out.println("路径:"+args[0]+"不存在,请检查");
}
stmt.close();
con.close();
}
}
}
=============================
就是说在循环体外面先把inputpath.list()给了另外一个String()[]吗?
* cocosunshine
发表于:2007-11-26 15:46:032楼 得分:0
我个人觉得应该不能超过Integer.MAX_VALUE。
File[] files=inputpath.listFiles();
for (int i=0;i<files.length;i++)
{
//.....
}
你这样写,每次都要执行inputpath.list()操作,相当于每次都读硬盘资源,很费时的。
其实基本取决于内存限制...
Integer.MAX_VALUE = 2147483647