将File []转换为String []

时间:2014-09-09 14:45:56

标签: java arrays file type-conversion

问题:将文件[]转换为字符串[]

File[] objectArray=getXMLFiles(new File("C:\\some-path"));
String[] stringArray = Arrays.copyOf(objectArray, objectArray.length, String[].class);

例外:

Exception in thread "main" java.lang.ArrayStoreException
    at java.lang.System.arraycopy(Native Method)
    at java.util.Arrays.copyOf(Unknown Source)

我确实理解这个异常即将发生,因为我直接将文件Object复制到String数组。但是有人可以帮我将objectArray转换为stringArray。请帮我一个简单的方法来转换它。

要求: 我希望逐个挑选文件数组元素,这样1比1将获得文件的位置,并将在下面的loop.Sample中处理。aAL and cAL is arraylist.

 for (int i = 0; i < 4; i++) {
     String fp=stringArray(i); //String array required to do this.
     String accountNum=aAL.get(i).toString();
     String custId=cAL.get(i).toString();
    Runnable worker = new XMLMultithreading(fp,anum,cid);
    executor.execute(worker);
    }

由于

2 个答案:

答案 0 :(得分:1)

您无法将文件转换为字符串,导致文件不是字符串。

但是File有一些返回String的方法(getName(),getAbsolutePath())。

所以你可以这样做:

String[] stringArray = new String[objectArray.length];
for (int i = 0; i < objectArray.length; i++) stringArray[i] = objectArray[i].getAbsolutePath();

答案 1 :(得分:0)

你可以这样做

File[] files =getXMLFiles(new File("C:\\some-path"));
fileArray = new String[files.length];
for (int i = 0; i < files.length; ++i){
fileArray[i] = files[i].getName();
}