
基本上面几位都说啦。。。
只说一点就是注意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读取文件名等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)