如果想要获得当前文件中的文件名只需要String [] fileName = file.list();就可以了。如果要包括文件中的文件名就可以用递归的方式。下面是两个具体的实现。
其中public static String [] getFileName(String path)是只得到当前文件中的文件名。public static void getAllFileName(String path,ArrayList<String> fileName)是包括当前文件及其子文件的文件名。
public class GetFileName
{
public static String [] getFileName(String path)
{
File file = new File(path);
String [] fileName = file.list();
return fileName;
}
public static void getAllFileName(String path,ArrayList<String> fileName)
{
File file = new File(path);
File [] files = file.listFiles();
String [] names = file.list();
if(names != null)
fileName.addAll(Arrays.asList(names));
for(File a:files)
{
if(a.isDirectory())
{
getAllFileName(a.getAbsolutePath(),fileName);
}
}
}
public static void main(String[] args)
{
String [] fileName = getFileName("F:\\xiaoshuo");
for(String name:fileName)
{
System.out.println(name);
}
System.out.println("--------------------------------");
ArrayList<String> listFileName = new ArrayList<String>();
getAllFileName("F:\\xiaoshuo",listFileName);
for(String name:listFileName)
{
System.out.println(name);
}
}
}
运行时需要更改一下具体的文件夹。
字符串拼接的五种方式
package
test;
import
org.apache.commons.lang.StringUtils;
public
class
CutString {
//性能最差
public
String testPlus() {
String s =
""
;
for
(
int
i =
0
; i <
10000
; i++) {
s = s + String.valueOf(i);
}
return
s;
}
//较好
public
String testConcat() {
String s =
""
;
for
(
int
i =
0
; i <
10000
; i++) {
s = s.concat(String.valueOf(i));
}
return
s;
}
//性能与testStringBuffer相差无几,比其要好
public
String testJoin() {
String[] list =
new
String[
10000
];
for
(
int
i =
0
; i <
10000
; i++) {
list[i] = String.valueOf(i);
}
return
StringUtils.join(list,
""
);
}
public
String testStringBuffer() {
StringBuffer sb =
new
StringBuffer();
long
l1 = System.currentTimeMillis();
for
(
int
i =
0
; i <
10000
; i++) {
sb.append(String.valueOf(i));
}
long
l2 = System.currentTimeMillis();
System.out.println(l2-l1);
return
sb.toString();
}
//性能最高的方法
public
void
testStringBuilder() {
StringBuilder sb =
new
StringBuilder();
for
(
int
i =
0
; i <
100000
; i++) {
sb.append(String.valueOf(i));
}
sb.toString();
}
public
static
void
main(String[] args) {
System.out.println(
new
CutString().testStringBuffer());
}
}