【问题标题】:Convert a File[ ] to String [ ]将文件 [ ] 转换为字符串 [ ]
【发布时间】:2014-09-09 14:45:56
【问题描述】:

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

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)

我知道这个异常即将到来,因为我直接将文件对象复制到字符串数组。但是有人可以帮我将我的 objectArray 转换为 stringArray。请帮我一个简单的方法来转换它。

要求: 我希望文件数组元素一个一个地被挑选出来,以便一个一个地得到文件的位置并在循环中处理。下面的示例。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);
    }

谢谢

【问题讨论】:

  • 我怀疑你的方法getXMLFiles() 调用File.listFiles()。如果是这样,请考虑改用File.list()
  • @ponomandr:错过了。是的,它调用 File.ListFiles()
  • @user3930361::请记住您是否使用任何 fileobject.isFile() 来检查它是否是有效文件。如果 File.list() 在这种情况下将不起作用。跨度>

标签: java arrays file type-conversion


【解决方案1】:

您不能将文件转换为字符串,因为文件不是字符串。

但是 File 有一些方法(getName()、getAbsolutePath())返回一个字符串。

所以你可以这样做:

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

【讨论】:

  • 我想这解决了目的。但最好按照上面的 ponomandr 的评论进行,如果最后只需要字符串数组。
【解决方案2】:

你可以这样做

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();
}

【讨论】:

    猜你喜欢
    • 2012-04-17
    • 2011-01-06
    • 2016-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-27
    • 2012-03-28
    • 1970-01-01
    相关资源
    最近更新 更多