黑马程序员技术交流社区
标题:
一位学员的入学面试不会做的考题,我试了下,请指教!
[打印本页]
作者:
abc784990536
时间:
2015-1-8 12:04
标题:
一位学员的入学面试不会做的考题,我试了下,请指教!
本帖最后由 abc784990536 于 2015-1-8 12:17 编辑
刚才看到一位学员的入学面试考题
http://bbs.itheima.com/forum.php?mod=viewthread&tid=156391&extra=page%3D1
,他一道题不会做,我试了下,请指教!
package IO;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FilenameFilter;
import java.io.IOException;
/*
* 需求:编写一个程序,我想把这个目录下所有的带.java文件拷贝到另一个目录中,拷贝成功后,把后缀名是.java改成.txt
* 指定的文件是:.java文件。
* 指定的后缀名是:.txt
* 指定的目录是:txt
*
* 数据源:e:\\java\\A.java
* 目的地:e:\\txt\\A.txt
*
* 分析:
* A:封装目录
* B:获取该目录下的java文件的File数组
* C:遍历该File数组,得到每一个File对象
* D:把该File进行复制
* E:在目的地目录下改名
*/
public class CopyFolderDemo {
public static void main(String[] args) throws IOException {
// 封装目录
File srcFolder = new File("e:\\java");
// 封装目的地
File destFolder = new File("e:\\txt");
// 如果目的地目录不存在,就创建
if (!destFolder.exists()) {
destFolder.mkdir();
}
// 获取该目录下的java文件的File数组
File[] fileArray = srcFolder.listFiles(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
return new File(dir, name).isFile() && name.endsWith(".java");
}
});
// 遍历该File数组,得到每一个File对象
for (File file : fileArray) {
// System.out.println(file);
// 数据源:e:\java\DataTypeDemo.java
// 目的地:e:\\text\DataTypeDemo.java
String name = file.getName();
File newFile = new File(destFolder, name);
copyFile(file, newFile);
}
// 在目的地目录下改名
File[] destFileArray = destFolder.listFiles();
for (File destFile : destFileArray) {
// System.out.println(destFile);
// e:\text\DataTypeDemo.java
// e:\\text\\DataTypeDemo.text
String name =destFile.getName(); //DataTypeDemo.java
String newName = name.replace(".java", ".txt");//DataTypeDemo.jad
File newFile = new File(destFolder,newName);
destFile.renameTo(newFile);
}
}
private static void copyFile(File file, File newFile) throws IOException {
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(
file));
BufferedOutputStream bos = new BufferedOutputStream(
new FileOutputStream(newFile));
byte[] bys = new byte[1024];
int len = 0;
while ((len = bis.read(bys)) != -1) {
bos.write(bys, 0, len);
}
bos.close();
bis.close();
}
}
复制代码
作者:
钟伟
时间:
2015-1-8 20:14
没有测试,应该是对的,同学做的不错加油。
作者:
noiary
时间:
2015-1-9 15:11
之前也写了一个
package exercises;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
/**
* 编写一个程序,把这个目录里边的所有的带.java文件都拷贝到另一个目录里边,拷贝成功以后,把后缀名是.java改成.txt]
*
* @author always
*
*/
public class CopyFiles {
public static void main(String[] args) throws Exception {
File file = new File("D:\\Java\\java027\\day13");
String destDir = "E:\\test";
File[] files = file.listFiles();
for (File f : files) {
if (f.getName().endsWith(".java"))
copyFile(f, destDir + "\\" + f.getName());
}
renameFile(destDir);
}
private static void renameFile(String destDir) {
File file = new File(destDir);
for (File f : file.listFiles()) {
String fileName = f.getName();
String newName = f.getParent() + "\\"
+ fileName.substring(0, fileName.lastIndexOf(".")) + ".txt";
if (fileName.endsWith(".java"))
f.renameTo(new File(newName));
}
}
private static void copyFile(File file, String dest) throws IOException {
FileReader fr = new FileReader(file);
FileWriter fw = new FileWriter(dest);
int len = 0;
while ((len = fr.read()) != -1) {
fw.write(len);
fw.flush();
}
fr.close();
fw.close();
}
}
复制代码
作者:
鹰击长空168
时间:
2015-1-13 22:11
学习了!!!
作者:
pj1988
时间:
2015-1-13 22:18
看了个大概,没看出什么东东,只有运行下可能知道怎么回事
作者:
syz1993
时间:
2015-1-13 23:07
noiary 发表于 2015-1-9 15:11
之前也写了一个
和我做法一样
作者:
da_chuan
时间:
2015-1-13 23:55
流关闭时应该先判断一下是否为空
作者:
abc784990536
时间:
2015-1-14 11:40
da_chuan 发表于 2015-1-13 23:55
流关闭时应该先判断一下是否为空
直接抛异常了,就不try了
作者:
bowen-xiao
时间:
2015-1-16 22:03
http://bbs.itheima.com/thread-164427-1-1.html
大家可以看一下这个程序的问题出在哪里?代码没有错,看标题
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2