導航:首頁 > 文件教程 > java讀取目錄下所有文件

java讀取目錄下所有文件

發布時間:2022-12-31 18:06:03

java怎麼循環讀取目錄下的文件內容

JAVA 遍歷文件夾下的所有文件(遞歸調用和非遞歸調用)
1.不使用遞歸的方法調用。
public void traverseFolder1(String path) {
int fileNum = 0, folderNum = 0;
File file = new File(path);
if (file.exists()) {
LinkedList<File> list = new LinkedList<File>();
File[] files = file.listFiles();
for (File file2 : files) {
if (file2.isDirectory()) {
System.out.println("文件夾:" + file2.getAbsolutePath());
list.add(file2);
fileNum++;
} else {
System.out.println("文件:" + file2.getAbsolutePath());
folderNum++;
}
}
File temp_file;
while (!list.isEmpty()) {
temp_file = list.removeFirst();
files = temp_file.listFiles();
for (File file2 : files) {
if (file2.isDirectory()) {
System.out.println("文件夾:" + file2.getAbsolutePath());
list.add(file2);
fileNum++;
} else {
System.out.println("文件:" + file2.getAbsolutePath());
folderNum++;
}
}
}
} else {
System.out.println("文件不存在!");
}
System.out.println("文件夾共有:" + folderNum + ",文件共有:" + fileNum);

}
2.使用遞歸的方法調用
public static List<File> getFileList(String strPath) {
File dir = new File(strPath);
File[] files = dir.listFiles(); // 該文件目錄下文件全部放入數組
if (files != null) {
for (int i = 0; i < files.length; i++) {
String fileName = files[i].getName();
if (files[i].isDirectory()) { // 判斷是文件還是文件夾
getFileList(files[i].getAbsolutePath()); // 獲取文件絕對路徑
} else if (fileName.endsWith("avi")) { // 判斷文件名是否以.avi結尾
String strFileName = files[i].getAbsolutePath();
System.out.println("---" + strFileName);
filelist.add(files[i]);
} else {
continue;
}
}

}
return filelist;
}

㈡ java怎麼查詢指定路徑下所有文件夾

Java程序中讀取某個目錄下的所有文件(下面以D盤下的文件夾為例),代碼如下:

import java.io.File;
public class Test1 {
public static void main(String[] args) {
String path="D://";
File file=new File(path);
File[] tempList = file.listFiles();
System.out.println("該目錄下對象個數:"+tempList.length);
for (int i = 0; i < tempList.length; i++) {
if (tempList[i].isFile()) {
//讀取某個文件夾下的所有文件
System.out.println("文件:"+tempList[i]);
}
if (tempList[i].isDirectory()) {
//讀取某個文件夾下的所有文件夾
System.out.println("文件夾:"+tempList[i]);
}
}
}
}

㈢ Java 如何讀取目錄下的文件內容

Java讀取目錄下的文件內容,使用的是java的文件類,示例如下:

importjava.io.BufferedReader;
importjava.io.File;
importjava.io.FileInputStream;
importjava.io.FileReader;
importjava.io.IOException;
importjava.io.InputStream;
importjava.io.InputStreamReader;
importjava.io.RandomAccessFile;
importjava.io.Reader;

publicclassReadFromFile{
/**
*以位元組為單位讀取文件,常用於讀二進制文件,如圖片、聲音、影像等文件。
*
*@paramfileName
*文件的名
*/
(StringfileName){
Filefile=newFile(fileName);
InputStreamin=null;
try{
System.out.println("以位元組為單位讀取文件內容,一次讀一個位元組:");
//一次讀一個位元組
in=newFileInputStream(file);
inttempbyte;
while((tempbyte=in.read())!=-1){
System.out.write(tempbyte);
}
in.close();
}catch(IOExceptione){
e.printStackTrace();
return;
}
try{
System.out.println("以位元組為單位讀取文件內容,一次讀多個位元組:");
//一次讀多個位元組
byte[]tempbytes=newbyte[100];
intbyteread=0;
in=newFileInputStream(fileName);
ReadFromFile.showAvailableBytes(in);
//讀入多個位元組到位元組數組中,byteread為一次讀入的位元組數
while((byteread=in.read(tempbytes))!=-1){
System.out.write(tempbytes,0,byteread);
}
}catch(Exceptione1){
e1.printStackTrace();
}finally{
if(in!=null){
try{
in.close();
}catch(IOExceptione1){
}
}
}
}

/**
*以字元為單位讀取文件,常用於讀文本,數字等類型的文件
*
*@paramfileName
*文件名
*/
(StringfileName){
Filefile=newFile(fileName);
Readerreader=null;
try{
System.out.println("以字元為單位讀取文件內容,一次讀一個位元組:");
//一次讀一個字元
reader=newInputStreamReader(newFileInputStream(file));
inttempchar;
while((tempchar=reader.read())!=-1){
//對於windows下, 這兩個字元在一起時,表示一個換行。
//但如果這兩個字元分開顯示時,會換兩次行。
//因此,屏蔽掉 ,或者屏蔽 。否則,將會多出很多空行。
if(((char)tempchar)!=' '){
System.out.print((char)tempchar);
}
}
reader.close();
}catch(Exceptione){
e.printStackTrace();
}
try{
System.out.println("以字元為單位讀取文件內容,一次讀多個位元組:");
//一次讀多個字元
char[]tempchars=newchar[30];
intcharread=0;
reader=newInputStreamReader(newFileInputStream(fileName));
//讀入多個字元到字元數組中,charread為一次讀取字元數
while((charread=reader.read(tempchars))!=-1){
//同樣屏蔽掉 不顯示
if((charread==tempchars.length)
&&(tempchars[tempchars.length-1]!=' ')){
System.out.print(tempchars);
}else{
for(inti=0;i<charread;i++){
if(tempchars[i]==' '){
continue;
}else{
System.out.print(tempchars[i]);
}
}
}
}

}catch(Exceptione1){
e1.printStackTrace();
}finally{
if(reader!=null){
try{
reader.close();
}catch(IOExceptione1){
}
}
}
}

/**
*以行為單位讀取文件,常用於讀面向行的格式化文件
*
*@paramfileName
*文件名
*/
(StringfileName){
Filefile=newFile(fileName);
BufferedReaderreader=null;
try{
System.out.println("以行為單位讀取文件內容,一次讀一整行:");
reader=newBufferedReader(newFileReader(file));
StringtempString=null;
intline=1;
//一次讀入一行,直到讀入null為文件結束
while((tempString=reader.readLine())!=null){
//顯示行號
System.out.println("line"+line+":"+tempString);
line++;
}
reader.close();
}catch(IOExceptione){
e.printStackTrace();
}finally{
if(reader!=null){
try{
reader.close();
}catch(IOExceptione1){
}
}
}
}

/**
*隨機讀取文件內容
*
*@paramfileName
*文件名
*/
(StringfileName){
RandomAccessFilerandomFile=null;
try{
System.out.println("隨機讀取一段文件內容:");
//打開一個隨機訪問文件流,按只讀方式
randomFile=newRandomAccessFile(fileName,"r");
//文件長度,位元組數
longfileLength=randomFile.length();
//讀文件的起始位置
intbeginIndex=(fileLength>4)?4:0;
//將讀文件的開始位置移到beginIndex位置。
randomFile.seek(beginIndex);
byte[]bytes=newbyte[10];
intbyteread=0;
//一次讀10個位元組,如果文件內容不足10個位元組,則讀剩下的位元組。
//將一次讀取的位元組數賦給byteread
while((byteread=randomFile.read(bytes))!=-1){
System.out.write(bytes,0,byteread);
}
}catch(IOExceptione){
e.printStackTrace();
}finally{
if(randomFile!=null){
try{
randomFile.close();
}catch(IOExceptione1){
}
}
}
}

/**
*顯示輸入流中還剩的位元組數
*
*@paramin
*/
(InputStreamin){
try{
System.out.println("當前位元組輸入流中的位元組數為:"+in.available());
}catch(IOExceptione){
e.printStackTrace();
}
}

publicstaticvoidmain(String[]args){
StringfileName="C:/temp/newTemp.txt";
ReadFromFile.readFileByBytes(fileName);
ReadFromFile.readFileByChars(fileName);
ReadFromFile.readFileByLines(fileName);
ReadFromFile.readFileByRandomAccess(fileName);
}
}

㈣ java中如何獲取目錄中的所有文件

public static void list(File path, String[] extArr,HashMap hm) {
if (!path.exists()) {
System.out.println("文件名稱不存在!");
} else {
if (path.isFile()) {
for (int i = 0; i < extArr.length; i++) {
if (path.getName().toLowerCase().endsWith(extArr[i])) {// 文件格式
hm.put(path.getName(), path);
}
}

} else {
File[] files = path.listFiles();
for (int i = 0; i < files.length; i++) {
list(files[i], extArr,hm);
}
}
}
}

㈤ 求助大神~~~java按時間順序,讀取文件夾下的所有文件(時間最早的先讀取,就是最老的那個)

/**
*@paramargs
*/
publicstaticvoidmain(String[]args){

Stringpath="d:\test";

List<File>list=getFileSort(path);

for(Filefile:list){
System.out.println(file.getName()+":"+file.lastModified());
}
}

/**
*獲取目錄下所有文件(按時間排序)
*
*@parampath
*@return
*/
publicstaticList<File>getFileSort(Stringpath){

List<File>list=getFiles(path,newArrayList<File>());

if(list!=null&&list.size()>0){

Collections.sort(list,newComparator<File>(){
publicintcompare(Filefile,FilenewFile){
if(file.lastModified()<newFile.lastModified()){
return1;
}elseif(file.lastModified()==newFile.lastModified()){
return0;
}else{
return-1;
}

}
});

}

returnlist;
}

/**
*
*獲取目錄下所有文件
*
*@paramrealpath
*@paramfiles
*@return
*/
publicstaticList<File>getFiles(Stringrealpath,List<File>files){

FilerealFile=newFile(realpath);
if(realFile.isDirectory()){
File[]subfiles=realFile.listFiles();
for(Filefile:subfiles){
if(file.isDirectory()){
getFiles(file.getAbsolutePath(),files);
}else{
files.add(file);
}
}
}
returnfiles;
}

㈥ JAVA7如何遍歷一個目錄下的所有文件,如何知

1.遍歷本目錄下所有的文件(不包括目錄的目錄里的文件)
import java.io.File;public class main { public static void main(String[] args) { path = "D:\\JAVA"; //要遍歷的路徑 File file = new File(path); //獲取其file對象 File[] fs = file.listFiles(); //遍歷path下的文件和目錄,放在File數組中 for(File f:fs){ //遍歷File[]數組 if(!f.isDirectory()) //若非目錄(即文件),則列印 System.out.println(f); } }}

運行結果:
列印出 D:/JAVA下的全部文件(包括D:/JAVA下的目錄下的文件)
1.遍歷本目錄下所有的文件(包括目錄的目錄里的文件)

import java.io.File;import java.io.FileFilter;public class FileText { public static void main(String[] args) { String path = "D:\\JAVA"; //要遍歷的路徑 File file = new File(path); //獲取其file對象 func(file); } private static void func(File file){ File[] fs = file.listFiles(); for(File f:fs){ if(f.isDirectory()) //若是目錄,則遞歸列印該目錄下的文件 func(f); if(f.isFile()) //若是文件,直接列印 System.out.println(f); } }}

列印結果:

列印所有文件

㈦ Java 找出某一個文件夾下的所有文件

要養成看API文檔的好習慣。
查看API可以看出,
File對象的 String[] list()方法:
Returns an array of strings naming the files and directories in the directory denoted by this abstract pathname.
意思很明確,返回實例化File時,傳入的字元串類型的路徑名稱,此方法返回此路徑下的所有文件及目錄,不帶路徑,
File對象的 String[] listFiles()方法:
Returns an array of abstract pathnames denoting the files in the directory denoted by this abstract pathname.
意思很明確,返回實例化File時,傳入的抽象字元串類型的路徑名稱,此方法返回此路徑下的所有文件及目錄,含抽象路徑.
一般調用System.out.println(Object obj);這個方法,查看Api文檔,
System.out返回一個標準的PrintWriter,此PrintWriter是OutputStream的子類,當調用println()方法輸出對象時,調用的是對象的toString()方法,如果對象沒有覆寫toString()方法,則直接輸出對象的堆內存地址。
查看API文檔,File類的toString()
Returns the pathname string of this abstract pathname
意即返回實例化File對象時候傳入的抽象路徑
你的test方法,實例化File對象的時候,用的是list()方法得到的,此時本身該抽象路徑就只含有文件名而沒有路徑了,另外一個方法則是用的是listFiles()方法,此時得到的都含有抽象路徑。因此你輸出的時候,就出現這種情況.

㈧ java 如何讀取指定文件夾內的所有文件夾及文件,然後在頁面上以樹的形式顯示出來。

我給你一個讀取指定文件夾下面的所有文件夾,和文件的代碼。
至於頁面上用樹來顯示,html的話,這個有點麻煩。
swing的話,你就只需要用DefaultTreeModel.add(new TreeNode("XXX"));

public class GetAllFiles{
private String filePath = "C:/windows"; // 讀取C:/windos文件
private File f = null;

public GetAllFiles(){
f = new File(filePath);
}

public List<File> getAllFile(){
File[] fileInF = f.listFiles(); // 得到f文件夾下面的所有文件。
List<File> list = new List<File>();
for(File file : fileInF){
list.add(file);
}
return list;
}

public static void main(String[] args){
new GetAllFiles().getAllFile();
}
}

㈨ JAVA怎麼從一個目錄中依次讀取所有文件

File f = new File(path);
File[] t = f.listFiles(); 這個方法來讀取這個目錄下的文件 。

㈩ java中怎樣獲得一個文件夾中的所有文件名

java中獲得一個文件夾中的所有文件名代碼如下:

packagecom.readfile;

importjava.io.File;

publicclassGetAllFiles {

publicstaticvoidmain(String[] args) {

//路徑 這里寫一個路徑進去

String path="F:\QQ文檔";

//調用方法

getFiles(path);

}

/**

* 遞歸獲取某路徑下的所有文件,文件夾,並輸出

*/

publicstaticvoidgetFiles(String path) {

File file =newFile(path);

// 如果這個路徑是文件夾

if(file.isDirectory()) {

// 獲取路徑下的所有文件

File[] files = file.listFiles();

for(inti =0; i < files.length; i++) {

// 如果還是文件夾 遞歸獲取裡面的文件 文件夾

if(files[i].isDirectory()) {

System.out.println("目錄:"+ files[i].getPath());

getFiles(files[i].getPath());

}else{

System.out.println("文件:"+ files[i].getPath());

}

}

}else{

System.out.println("文件:"+ file.getPath());

}

}

}

(10)java讀取目錄下所有文件擴展閱讀:

如果想要獲得當前文件中的文件名只需要String [] fileName = file.list();就可以了。

如果要包括文件中的文件名就可以用遞歸的方式。下面是兩個具體的實現。

其中public static String [] getFileName(String path)是只得到當前文件中的文件名。

public static void getAllFileName(String path,ArrayList<String> fileName)是包括當前文件及其子文件的文件名。

閱讀全文

與java讀取目錄下所有文件相關的資料

熱點內容
眾籌用什麼網站 瀏覽:1
天馬座的幻想版本 瀏覽:536
微雲保存文件圖片沒有了 瀏覽:236
如何把excel表格圖片導出到文件夾 瀏覽:387
qq三國快速升級攻略 瀏覽:660
js監聽手機home事件 瀏覽:439
第2章linux的桌面管理副本 瀏覽:452
qq郵箱手機上登錄微信賬號密碼錯誤 瀏覽:627
編程如何讓人物重復發射子彈 瀏覽:853
db2查看錶空間文件 瀏覽:607
ps文件界面設置 瀏覽:779
c語言12位的數據應該怎麼存儲 瀏覽:953
將ape導入iphone 瀏覽:107
js組合快捷鍵 瀏覽:174
linux系統盤默認掛在的文件夾 瀏覽:667
淘寶數據包如何操作上架 瀏覽:567
vb編程中輸入cls是什麼意思 瀏覽:81
linuxtime服務 瀏覽:184
瘋狂安卓講義第二版代碼 瀏覽:420
老炮兒三小時版本下載 瀏覽:313

友情鏈接