Java ArrayList返回null的方法
我希望此方法返回包含目录中所有文件名的字符串列表。我声明的列表从方法返回为null。有人知道为什么吗?下面是代码片段Java ArrayList返回null的方法,java,jsp,servlets,arraylist,Java,Jsp,Servlets,Arraylist,我希望此方法返回包含目录中所有文件名的字符串列表。我声明的列表从方法返回为null。有人知道为什么吗?下面是代码片段 public static String docxList() { String path1 = "E:\\"; String files = null; String display = null; String dpmt=null; //String variables declaration,
public static String docxList() {
String path1 = "E:\\";
String files = null;
String display = null;
String dpmt=null;
//String variables declaration,
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
java.sql.Connection
con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","user","pass");
//Database connection Code
PreparedStatement ps=con.prepareStatement("select * from EMP_DB where EMP_ID='EI-12'");
ResultSet rs=ps.executeQuery();
rs.next();
dpmt=rs.getString("DEPARTMENT");
path1 =path1+dpmt; //New path generation of specific directory according to user department
File folder = new File(path1);
File[] listOfFiles = folder.listFiles();
for (int i = 0; i < listOfFiles.length; i++)
{
if (listOfFiles[i].isFile())
{
files = listOfFiles[i].getName();
String filename=files;
if(filename.indexOf(".")>0)
{
filename=files.substring(0,files.lastIndexOf("."));
}
display=('<'+"A HREF"+'='+"\""+"PDFs/"+dpmt+"/"+files+"\""+" "+"target"+'='+"\""+"targetiframe"+"\""+'>'+'<'+"font"+" size"+'='+"\"4\""+" color"+'='+"\"white\""+'>'+filename+"</font>"+"<"+"/A"+'>');
//Hyper-linked list of files.
ArrayList<String> al=new ArrayList<String>();
al.add(display);
//Adding all file names in a directory to a Arraylist.
}
}
}
catch(Exception ex)
{
System.out.print("Exception: "+ex+" in Dpmt Method.");
//Exception Display if any.
}
return al; //ArrayList doesn't generate list of files in the drectory.
}
公共静态字符串docxList(){
字符串路径1=“E:\\”;
字符串文件=null;
字符串显示=null;
字符串dpmt=null;
//字符串变量声明,
试一试{
类forName(“oracle.jdbc.driver.OracleDriver”);
java.sql.Connection
con=DriverManager.getConnection(“jdbc:oracle:thin:@localhost:1521:xe”、“user”、“pass”);
//数据库连接代码
PreparedStatement ps=con.prepareStatement(“从EMP_DB中选择*,其中EMP_ID='EI-12'”);
结果集rs=ps.executeQuery();
rs.next();
dpmt=rs.getString(“部门”);
path1=path1+dpmt;//根据用户部门生成特定目录的新路径
文件夹=新文件(路径1);
File[]listOfFiles=folder.listFiles();
for(int i=0;i0)
{
filename=files.substring(0,files.lastIndexOf(“.”);
}
display=(“”+“”+filename++“在return语句看不到的范围内取消读取数组列表。将以下语句放在for循环之前
ArrayList al=new ArrayList();
所以,它看起来是这样的-
File[] listOfFiles = folder.listFiles();
ArrayList<String> al = new ArrayList<String>();
for (int i = 0; i < listOfFiles.length; i++)
File[]listOfFiles=folder.listFiles();
ArrayList al=新的ArrayList();
for(int i=0;i
…代码的其余部分
编辑:
您还应该修改方法签名以返回列表,而不是字符串
public static ArrayList<String> docxList()
publicstaticarraylistdocxlist()
在return语句看不到的范围内取消读取数组列表。将以下语句放在for循环之前
ArrayList al=new ArrayList();
所以,它看起来是这样的-
File[] listOfFiles = folder.listFiles();
ArrayList<String> al = new ArrayList<String>();
for (int i = 0; i < listOfFiles.length; i++)
File[]listOfFiles=folder.listFiles();
ArrayList al=新的ArrayList();
for(int i=0;i
…代码的其余部分
编辑:
您还应该修改方法签名以返回列表,而不是字符串
public static ArrayList<String> docxList()
publicstaticarraylistdocxlist()
在return语句看不到的范围内取消读取数组列表。将以下语句放在for循环之前
ArrayList al=new ArrayList();
所以,它看起来是这样的-
File[] listOfFiles = folder.listFiles();
ArrayList<String> al = new ArrayList<String>();
for (int i = 0; i < listOfFiles.length; i++)
File[]listOfFiles=folder.listFiles();
ArrayList al=新的ArrayList();
for(int i=0;i
…代码的其余部分
编辑:
您还应该修改方法签名以返回列表,而不是字符串
public static ArrayList<String> docxList()
publicstaticarraylistdocxlist()
在return语句看不到的范围内取消读取数组列表。将以下语句放在for循环之前
ArrayList al=new ArrayList();
所以,它看起来是这样的-
File[] listOfFiles = folder.listFiles();
ArrayList<String> al = new ArrayList<String>();
for (int i = 0; i < listOfFiles.length; i++)
File[]listOfFiles=folder.listFiles();
ArrayList al=新的ArrayList();
for(int i=0;i
…代码的其余部分
编辑:
您还应该修改方法签名以返回列表,而不是字符串
public static ArrayList<String> docxList()
publicstaticarraylistdocxlist()
您需要在try/catch
块之外声明您的列表
,以便它位于return语句的范围内。此外,当您尝试返回列表
时,您的返回类型当前是字符串
,因此如果确实要返回列表
,也需要更改此方法看起来像:
public static List<String> docxList() {
String path1 = "E:\\";
String files = null;
String display = null;
String dpmt=null;
List<String> al = new ArrayList<String>();
try {
// code...
}
catch(Exception ex) {
// handle exception..
}
return al;
}
公共静态列表docxList(){
字符串路径1=“E:\\”;
字符串文件=null;
字符串显示=null;
字符串dpmt=null;
List al=新的ArrayList();
试试{
//代码。。。
}
捕获(例外情况除外){
//处理异常。。
}
返回al;
}
您需要在try/catch
块之外声明您的列表
,以便它位于return语句的范围内。此外,当您尝试返回列表
时,您的返回类型当前是字符串
,因此如果确实要返回列表
,也需要更改此方法看起来像:
public static List<String> docxList() {
String path1 = "E:\\";
String files = null;
String display = null;
String dpmt=null;
List<String> al = new ArrayList<String>();
try {
// code...
}
catch(Exception ex) {
// handle exception..
}
return al;
}
公共静态列表docxList(){
字符串路径1=“E:\\”;
字符串文件=null;
字符串显示=null;
字符串dpmt=null;
List al=新的ArrayList();
试试{
//代码。。。
}
捕获(例外情况除外){
//处理异常。。
}
返回al;
}
您需要在try/catch
块之外声明您的列表
,以便它位于return语句的范围内。此外,当您尝试返回列表
时,您的返回类型当前是字符串
,因此如果确实要返回列表
,也需要更改此方法看起来像:
public static List<String> docxList() {
String path1 = "E:\\";
String files = null;
String display = null;
String dpmt=null;
List<String> al = new ArrayList<String>();
try {
// code...
}
catch(Exception ex) {
// handle exception..
}
return al;
}
公共静态列表docxList(){
字符串路径1=“E:\\”;
字符串文件=null;
字符串显示=null;
字符串dpmt=null;
List al=新的ArrayList();
试试{
//代码。。。
}
捕获(例外情况除外){
//处理异常。。
}
返回al;
}
您需要在try/catch
块之外声明您的列表
,以便它在return语句的范围内。此外,当您尝试返回列表时,您的返回类型当前是字符串
,因此这也需要