java中对文件名的读取

java中对文件名的读取,第1张

基本上面几位都说啦。。。

只说一点就是注意null和空的处理

import javaioFile;

import javautilHashSet;

import javautilSet;

public class ReadFileSample {

private static final String PATH = "C:\\TEST";

private static final char SEPARATOR = '_';

public static void main(String[] args) {

Set<String> fileSet = new HashSet<String>();

File[] files = new File(PATH)listFiles();

for (File file : files) {

// 由于Set的元素是不重复的,不用做重复判断,直接放入

fileSetadd(getPrefixFileName(filegetName()));

}

// 由于Set允许null,所以要去除

fileSetremove(null);

// 打印出Set的内容(需要的数据)

Systemoutprintln(fileSet);

}

private static String getPrefixFileName(String fileName) {

if (fileName == null || fileNamelength() == 0) {

return null;

}

int index = fileNameindexOf(SEPARATOR);

if (index < 0) {

// 不含SEPARATOR的文件

return null;

}

// 从文件名开头到SEPARATOR的位置,截取

return fileNamesubstring(0, index);

}

}

public void find(File file){

File[] file1 =filelistFiles();

for(File f:file1){

if(fisDirectory()){

Systemoutprintln(fgetName());

find(f);

}else

Systemoutprintln(fgetName());

}

这是循环读取所有文件名的方法 别的就不太会了。。

应该改成

File f = new File("D:\\123456txt");

在Java的字符串中\默认是转义字符的,如果要表示一个\,那么就需要双斜线。

fgetName()这个作用是

“返回由此抽象路径名表示的文件或目录的名称。该名称是路径名名称序列中的最后一个名称。如果路径名名称序列为空,则返回空字符串。 ”

所以,他输出的是123456txt,

即使是再添一个文件夹,像File f = new File("D:\\test\\123456txt");

输出的仍然是123456txt。

import javaio;

import javautilArrayList;

import javautilIterator;

import javautilList;

/

读取目录及子目录下指定文件名的路径 并放到一个数组里面返回遍历

@author zdz8207

/

public class FileViewer {

public static void main(String[] args) {

//List arrayList = FileViewergetListFiles("d:/com","html",true);

//读取d:/com下的以java 结尾的文件 如有子目录,包含之(后缀名为null则为所有文件)

//List arrayList = FileViewergetListFiles("d:/com","java",true);

//经试验,后缀不能不填写,否则编译不通过,提示“FileViewerjava:17: 非法的表达式开始”。

//另外后缀为""时的情况需要 增加到IF 里去,否则 后缀为""时,不会显示所有文件

List arrayList = FileViewergetListFiles("d:/com","",true);

if(arrayListisEmpty())

{

Systemoutprintln("没有符号要求的文件");

}

else

{

String message = "";

message += "符号要求的文件数:" + arrayListsize() + "\r\n";

Systemoutprintln(message);

for (Iterator i = arrayListiterator(); ihasNext();)

{

String temp = (String) inext();

Systemoutprintln(temp);

message += temp + "\r\n";

}

//将显示的文件路径写到指定的文件里,若文件不存在,则提示IO异常

//javaioFileNotFoundException: d:\ajax\menutxt (系统找不到指定的路径。)

//如果 加个文件是否存在的判断,如不存在就在当前目录新建一个,则更好。

appendMethod("d:/menutxt",message);

}

}

public static List<String> fileList = new ArrayList<String>();

/

@param path 文件路径

@param suffix 后缀名

@param isdepth 是否遍历子目录

@return

/

public static List getListFiles(String path, String suffix, boolean isdepth)

{

File file = new File(path);

return FileViewerlistFile(file ,suffix, isdepth);

}

public static List listFile(File f, String suffix, boolean isdepth)

{

//是目录,同时需要遍历子目录

if (fisDirectory() && isdepth == true)

{

File[] t = flistFiles();

for (int i = 0; i < tlength; i++)

{

listFile(t[i], suffix, isdepth);

}

}

else

{

String filePath = fgetAbsolutePath();

Systemoutprintln("suffix = "+suffix);

if(suffix =="" || suffix == null)

{

//后缀名为null则为所有文件

Systemoutprintln("----------------");

fileListadd(filePath);

}

else

{

int begIndex = filePathlastIndexOf("");//最后一个(即后缀名前面的)的索引

String tempsuffix = "";

if(begIndex != -1)//防止是文件但却没有后缀名结束的文件

{

tempsuffix = filePathsubstring(begIndex + 1, filePathlength());

}

if(tempsuffixequals(suffix))

{

fileListadd(filePath);

}

Systemoutprintln("|||||||||||||||||||");

}

}

return fileList;

}

/

方法追加文件:使用FileWriter

@param fileName

@param content

/

public static void appendMethod(String fileName, String content)

{

try

{

//打开一个写文件器,构造函数中的第二个参数true表示以追加形式写文件

FileWriter writer = new FileWriter(fileName, true);

writerwrite(content + "\r\n");

writerclose();

}

catch (IOException e)

{

eprintStackTrace();

}

}

}

以上就是关于java中对文件名的读取全部的内容,包括:java中对文件名的读取、怎么用java读取本地一个文件夹里所有文件的文件名,在JSP页面形成一个目录列表,通过点击列表实现下载、java读取文件名等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9605237.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存