你这题有点乱,我说下我的思路吧. 你对比下我的思路看看哪些是你没想到的.
1:确定源和目的地
2:用File[] files = sourFile.list();方法来获取到源目录下的所有文件. 这个方法和你使用的遍历一样的
不同在于这个获得的是File文件对象,而不是字符串,这样可以直接调用对象的方法,后面使用更方便.
3:对files数组里的所有文件进行遍历.遍历的时候先判断 该文件是不是文件. isFile.如果是文件,再判断后缀是否是.java结尾的.
4. 如果是.java结尾的,那么就获取这个文件的名字. file里面有个getName方法. 这样就获取到名字了. 题目不是要求要改为.txt结尾吗.
5 所以 这时候用字符串分割的方法,将最后的获取到的源文件名字进行分割,把java给去掉.方法是字符串.substring(); 需要传参进去,传的参数是最后一个java的开始位置.为什么要是最后一个java的位置呢. 是因为为了防止文件名字是 xxx.java.java 这样一种文件. 所以方法写全就是
String newFileName = 源文件名.substring(源文件名.lastIndexOf(java))+"txt";
这样就可以将源文件名字修改成我们想要的txt结尾的文件名了.
6 最后将源文件 和 改后的文件传入IO流对象, 进行读写操作就好了. 需要注意的是 IO流需要的是File对象或者有完整路径名+文件名的字符串. 所以你传参前 先要把获得的目的地文件名进行封装成File对象 或者给其加上完整的路径名. |