如何是獲取一個文件夾裏所有以.java結尾文件的數目,並把符合條件的文件名寫到一個目錄下。

版權聲明:本文爲博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/wq1134302142/article/details/52295269

對於這個題目 我們可以分析一下:

首先我們得拿到這個正確的文件路徑

<div><pre name="code" class="java">	public static File getFile(){
		Scanner sc  = new Scanner(System.in);
		System.out.println("請輸入文件夾路徑:");
		//從鍵盤接收一個文件夾路徑
		
		while(true){
			String line = sc.nextLine();
			File dir = new File(line);
			if(!dir.exists()){
				System.out.println("您輸入的路徑有誤,請重新輸入:");
			}else if (dir.isFile()) {
				System.out.println("您輸入的是一個文件,請重新輸入");
			}else{
				return dir;
			}
		}
	}




其次,可以先判斷一下我們所輸入的文件路徑是否正確,然後,在這個基礎上在判斷一下這個路徑是文件夾還是文件,在判斷爲文件的基礎上再次判斷一下是否是.java結尾的文件,計數器即自增一次,字符輸出流就寫入一次,並且換行一次.

<span style="white-space:pre">	</span>public static int printsubFiles(File dir)throws IOException{
		int count=0;<span style="white-space:pre">						</span>//定義一個計數器

		BufferedWriter bw = new BufferedWriter(new FileWriter("D:\\times.txt"));<span style="white-space:pre">	</span>//將其寫入到指定的目錄下

		File[] subFiles =dir.listFiles();			//對於判斷之後的文件夾進行轉換爲文件數組並且進行遍歷

		for(File subFile : subFiles){
<pre name="code" class="java"><span style="white-space:pre">		</span>//判斷一下這個文件是以.java後綴名的文件<span style="white-space:pre">	</span>

<span style="white-space:pre">		</span>if(subFile.isFile()&& subFile.getName().endsWith(".java")){<span style="white-space:pre">	
</span>				count++;<span style="white-space:pre">					</span>//計數器自增一次
				bw.write(subFile.getName());<span style="white-space:pre">			</span>//字符輸出流寫入一次
				bw.newLine();<span style="white-space:pre">					</span>//換行一次	
			}
<span style="white-space:pre">			</span>//遞歸<span style="white-space:pre">	</span>
       <span style="white-space:pre">			</span> else if(subFile.isDirectory()){	  <span style="white-space:pre">		</span>//判斷一下是否是文件夾
				printsubFiles(subFile);<span style="white-space:pre">			</span>	//不是,證明是文件夾,繼續進行遍歷,,
			}
		}
		bw.close();<span style="white-space:pre">	</span>//關流
		return count;<span style="white-space:pre">	</span>//返回計數器的值
	}

這個題目就差不多分析完了 ,接下就是主函數了,直接調用定義好的兩個方法,就好了

class Test_5 {
	public static void main(String[] args)throws IOException {
		
		File file = getFile();<span style="white-space:pre">				</span>//返回的是一個File類型的數據
		System.out.println(printsubFiles(file));<span style="white-space:pre">	</span>
<span style="white-space:pre">		</span>//打印出count的值,並且可以在<span style="font-family: Arial, Helvetica, sans-serif;">D:\times.txt目錄下查看打印出的.java結尾的文件名</span>


	}







發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章