如何是获取一个文件夹里所有以.java结尾文件的数目,并把符合条件的文件名写到一个目录下。

时间:2023-01-21 12:26:51

对于这个题目 我们可以分析一下:

首先我们得拿到这个正确的文件路径

<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>


	}