package comreadfile;
import javaioFile;public class GetAllFiles {
public static void main(String[] args) {
//路径 这里写一个路径进去
String path="F:\\QQ文档";
//调用方法
getFiles(path);
}
/
递归获取某路径下的所有文件,文件夹,并输出
/
public static void getFiles(String path) {
File file = new File(path);
// 如果这个路径是文件夹
if (fileisDirectory()) {
// 获取路径下的所有文件
File[] files = filelistFiles();
for (int i = 0; i < fileslength; i++) {
// 如果还是文件夹 递归获取里面的文件 文件夹
if (files[i]isDirectory()) {
Systemoutprintln("目录:" + files[i]getPath());
getFiles(files[i]getPath());
} else {
Systemoutprintln("文件:" + files[i]getPath());
}
}
} else {
Systemoutprintln("文件:" + filegetPath());
}
}
}
扩展资料:
如果想要获得当前文件中的文件名只需要String [] fileName = filelist();就可以了。
如果要包括文件中的文件名就可以用递归的方式。下面是两个具体的实现。
其中public static String [] getFileName(String path)是只得到当前文件中的文件名。
public static void getAllFileName(String path,ArrayList<String> fileName)是包括当前文件及其子文件的文件名。
参考资料:
百度百科-Java
我写了一段遍历某个文件查找指定文件的,你自己改成你需要的功能。
import javaioFile;
import javautilHashMap;
public class Test1 {
static HashMap<String, String> filelist=new HashMap<String, String>();
/
递归方法
@param path 文件路径
/
public static void find(String path){
File file=new File(path);
File[] files = filelistFiles();
//如果文件数组为null则返回
if (files == null)
return;
for (int i = 0; i < fileslength; i++) {
if (files[i]isDirectory()) {
//判断是不是文件夹,如果是文件夹则继续向下查找文件
find(files[i]getAbsolutePath());
} else {
//记录文件路径
String filePath = files[i]getAbsolutePath()toLowerCase();
//记录文件名
String fileName=files[i]getName()toLowerCase();
// Systemoutprintln("---"+strFileName);
filelistput(fileName, filePath);
}
}
}
public static void main(String[] args) {
//需要遍历的路径,也就是你要查找文件所在的路径
String path="D:\\kpi\\";
find(path);
Systemoutprintln("kpi9的路径:"+filelistget("kpi9"));
//输出结果:d:\kpi\kpi9
}
}
给你写了一个小方法,应该满足你的要求了:
//url是你要读取的文件的路径,wanted是所要求的包含的字符串如这里是“COMMON9006 - 000332”。
public static void readWantedText(String url, String wanted) {
try {
FileReader fr = new FileReader(url);
BufferedReader br = new BufferedReader(fr);
String temp = "";// 用于临时保存每次读取的内容
while (temp != null) {
temp = brreadLine();
if (temp != null && tempcontains(wanted)) {
Systemoutprintln(temp);
}
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
eprintStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
eprintStackTrace();
}
}
用的话直接调用这个方法就可以了:例如
readWantedText("D:\\testtxt", "COMMON9006 - 000332");
//注意java路径需要在每条\前面在加条\表示转义。
给你大概写了几个,是用截字符串的方法
import javaioBufferedReader;
import javaioFileReader;
public class FileReadTest {
public static void main(String[] args) throws Exception {
FileReader fw = new FileReader("D:\\welcometxt");
BufferedReader br = new BufferedReader(fw);
String line = brreadLine();
line = linereplaceAll("alert ", "");
String alert = linesubstring(0, lineindexOf(" "));
Systemoutprintln(alert);
line = linereplaceAll(alert, "");
line = linetrim();
String from = linesubstring(1, lineindexOf(" "));
Systemoutprintln(from);
line = linetrim();
line = linesubstring(lineindexOf(" ") + 1);
String from_date = linesubstring(0, lineindexOf(" "));
Systemoutprintln(from_date);
line = linesubstring(lineindexOf(" ") + 1);
line = linesubstring(lineindexOf("$") + 1);
String to = linesubstring(0, lineindexOf(" "));
Systemoutprintln(to);
}
}
import javaioFile;
import javaioFileInputStream;
import javaioFileOutputStream;
import javaioInputStream;
import javaioOutputStream;
import javaioOutputStreamWriter;
import javautilArrayList;
import javautilList;
public class $ {
public static void main(String[] args) {
List<Bean> data = new ArrayList<Bean>();
getFile(data, "D:/");
Systemoutprintln(data);
save(data);
}
private static void save(List<Bean> data) {
OutputStream os = null;
OutputStreamWriter osw = null;
try {
os = new FileOutputStream(new File("C:/acsv"));
osw = new OutputStreamWriter(os, "GBK");
for (Bean bean : data) {
oswwrite(bean + "\r\n");
}
oswflush();
} catch (Exception e) {
eprintStackTrace();
} finally {
if (os != null) {
try {
osclose();
} catch (Exception e) {
eprintStackTrace();
}
}
if (osw != null) {
try {
oswclose();
} catch (Exception e) {
eprintStackTrace();
}
}
}
}
private static void getFile(List<Bean> data, String path) {
File f = new File(path);
File[] fs = flistFiles();
if (fs == null) {
return;
}
for (File file : fs) {
if (fileisFile()) {
dataadd(new Bean(filegetParentFile()getAbsolutePath(), filegetName(), getFileSize(file)));
} else {
getFile(data, filegetAbsolutePath());
}
}
}
private static int getFileSize(File f) {
InputStream fis = null;
try {
fis = new FileInputStream(f);
return fisavailable();
} catch (Exception e) {
eprintStackTrace();
} finally {
if (fis != null) {
try {
fisclose();
} catch (Exception e) {
eprintStackTrace();
}
}
}
return 0;
}
}
class Bean {
private String filePath;
private String fileName;
private int size;
public Bean(String filePath, String fileName, int size) {
thisfilePath = filePath;
thisfileName = fileName;
thissize = size;
}
public String getFilePath() {
return filePath;
}
public void setFilePath(String filePath) {
thisfilePath = filePath;
}
public String getFileName() {
return fileName;
}
public void setFileName(String fileName) {
thisfileName = fileName;
}
public int getSize() {
return size;
}
public void setSize(int size) {
thissize = size;
}
public String toString() {
return filePath + "," + fileName + "," + size + "K";
}
}
给你写了一个小方法,应该满足你的要求了:
//url是你要读取的文件的路径,wanted是所要求的包含的字符串如这里是“COMMON9006 - 000332”。
public static void readWantedText(String url, String wanted) {
try {
FileReader fr = new FileReader(url);
BufferedReader br = new BufferedReader(fr);
String temp = "";// 用于临时保存每次读取的内容
while (temp != null) {
temp = brreadLine();
if (temp != null && tempcontains(wanted)) {
Systemoutprintln(temp);
}
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
eprintStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
eprintStackTrace();
}
}
用的话直接调用这个方法就可以了:例如
readWantedText("D:\\testtxt", "COMMON9006 - 000332");
//注意java路径需要在每条\前面在加条\表示转义。
你好代码如下,我调试通过了,希望我的回答对你有帮助!
代码说明,要查询是否存在''java"。在D:盘建一个wordtxt的文档,里面写一些单词,保存。运行如下代码会判断是否存在“java”这个单词。
package t;import javaioBufferedReader;
import javaioFileInputStream;
import javaioFileNotFoundException;
import javaioIOException;
import javaioInputStreamReader;
public class TestRead {
public static void main(String[] args) throws IOException {
FileInputStream fis = new FileInputStream("d:/wordtxt");
InputStreamReader isr =new InputStreamReader(fis);
BufferedReader br = new BufferedReader(isr);
String s;
int count=0;
while((s=brreadLine())!=null){
String[] s1 =ssplit(" ");
for(int i = 0;i<s1length;i++){
if("java"equals(s1[i])){
Systemoutprintln("存在单词"+s1[i]);
count++;
}
}
}
if(count==0){
Systemoutprintln("不存在java这个单词");
}
}
}
以上就是关于java中怎样获得一个文件夹中的所有文件名全部的内容,包括:java中怎样获得一个文件夹中的所有文件名、java 根据文件获取文件名及路径的方法、JAVA读取指定文件里面的指定内容等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)