/*需求:从键盘输入接收一个文件夹路径,打印出该文件夹下所有的.java文件名
*
*
* 打印出该文件夹下所有的.java文件名
* 1,获取到该文件夹路径下的所有的文件和文件夹,存储在File数组中
* 2,遍历数组,对每一个文件或文件夹做判断
* 3,如果是文件,并且后缀是.java的,就打印
* 4,如果是文件夹,就递归调用*/
public class DiGui {
public static void main(String[] args) {
/*
* 分析: 从键盘接收一个文件夹路径 1,如果录入的是不存在,给与提示 2,如果录入的是文件路径,给与提示 3,如果是文件夹路径,直接返回
*/
File dir = getDir();
printJavaFile(dir);
}
public static File getDir(){
Scanner sc =new Scanner(System.in); // 键盘录入
System.out.println("请输入一个文件夹路径");// 输入一个文件夹路径
while (true){ //死循环
String line =sc.nextLine(); //用字符串接收
File dir =new File(line); //封装路径
if (!dir.exists()) { //if 是否存在路径
System.out.println("您录入的文件夹不存在,請重新輸入");
if (dir.isFile()) { //是否存在文件路径
System.out.println("您输入的是文件路径,请重新输入文件夹路劲");
}else{
return dir;
}
}
}
}
public static void printJavaFile(File dir){
File[] subFiles=dir.listFiles();//获取到该文件夹路径下的文件和文件夹,存储在File数组中
for (File subFile : subFiles) {//遍历数组,对每一个文件或者文件夹做判断
if (subFile.isFile()&&subFile.getName().endsWith(".java")) {// 如果是文件,后缀名是点Java的就打印出来
System.out.println(subFile);
}else if (subFile.isDirectory()) { //如果是文件夹就重新调用
printJavaFile(subFile); // 递归调用
}
}
}
}
已知文件a.txt文件中的内容为“bcdeadferwplkou”,请编写程序读取该文件内容,
并按照自然排序顺序后输出到b.txt文件中。即b.txt文件内容应为"abc......"这样的顺序
思路:
1、先将a.txt文件内容读取出来并存到字符数组中
2、用Arrays.sort(字符数组) 将这个字符数组排序
3、将字符数组输出到b.txt文件中
*/
import java.io.IOException;
import java.io.File;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.Arrays;
class ReadFileAndSortString {
public static void main(String args[]) throws IOException
{
//封装数据源及目的地File
File a = new File("a.txt");
File b = new File("b.txt");
//高效字符输入流得到数据源
BufferedReader br = new BufferedReader(new FileReader(a));
//高效字符输出流得到目的地
BufferedWriter bw = new BufferedWriter(new FileWriter(b));
String line =null;
//循环读取文件
while((line = br.readLine())!=null)
{
//得到读取一行字符串的长度
int len = line.length();
char[] chrs = new char[len];
//转换成字符数组
chrs = line.toCharArray();
//通过Arrays的sort方法排序
Arrays.sort(chrs);
System.out.println("字符串:"+new String(chrs));
//写到文件中
bw.write(chrs);
bw.newLine();
//刷新缓冲区
bw.flush();
}
//关闭资源
br.close();
bw.close();
System.out.println("复制成功");
}
} |
|