黑马程序员技术交流社区
标题:
昨天面试没写全的笔试题
[打印本页]
作者:
没说的话……
时间:
2015-1-12 22:13
标题:
昨天面试没写全的笔试题
复制指定目录下的指定文件,并修改后缀名。就这题 代码太长了 老忘记怎么写
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文件。
* 指定的后缀名是:.jad
* 指定的目录是:jad
*
* 数据源:e:\\java\\A.java
* 目的地:e:\\jad\\A.jad
*
* 分析:
* 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:\\jad");
// 如果目的地目录不存在,就创建
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:\\jad\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:\jad\DataTypeDemo.java
// e:\\jad\\DataTypeDemo.jad
String name = destFile.getName(); // DataTypeDemo.java
String newName = name.replace(".java", ".jad");// 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();
}
}
作者:
鹰击长空168
时间:
2015-1-13 00:10
收藏了,谢谢分享
作者:
wata
时间:
2015-1-13 01:51
看个解题
作者:
kenfine
时间:
2015-1-13 07:47
面试时间一般是多久啊?远程操控看桌面?在写东西的时候一些知识点可以网上查或是查阅API不?
作者:
邓士林
时间:
2015-1-13 08:09
感觉好多面试题都是视频里面的
作者:
outsider1020
时间:
2015-1-13 08:59
谢谢了。。。。。
作者:
飘零宾
时间:
2015-1-13 09:03
这题是不是都考?看到好几次类似的了。还有笔试有时间限制吗?
作者:
lwj123
时间:
2015-1-13 09:03
好像基本上每个人都有这个题哦
作者:
以利亚
时间:
2015-1-13 09:12
感谢分享
作者:
Piaoyu
时间:
2015-1-13 09:45
谢谢分享
作者:
noiary
时间:
2015-1-13 11:03
我也写一个~
package exercises;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
/**
* 复制指定目录下的指定文件,并修改后缀名。
*
* @author always
*
*/
public class Test {
public static void main(String[] args) throws IOException {
File file = new File(
"d:\\java\\java027\\Thinking In Java 练习题答案 第四版.rar");
File destDir = new File("d:\\copyFile");
File destFile = new File(destDir, file.getName());
if (!destDir.exists())
destDir.mkdir();
// 复制文件
copyFile(file, destFile);
// 改后缀名
changeFileName(destFile);
}
/**
* 修改文件后缀名
* @param destFile
*/
private static void changeFileName(File destFile) {
//获取文件名
String fileName = destFile.getName();
//拟定新的文件名
String newFileName = fileName.substring(0, fileName.lastIndexOf("."))
+ ".zip";
File newFile = new File(destFile.getParent() + "//" + newFileName);
//修改文件名
destFile.renameTo(newFile);
}
/**
* 复制文件
* @param file 被复制的文件
* @param destFile 新文件
* @throws IOException
*/
private static void copyFile(File file, File destFile) throws IOException {
FileInputStream fis = new FileInputStream(file);
FileOutputStream fos = new FileOutputStream(destFile);
byte[] buf = new byte[1024];
int len = 0;
while ((len = fis.read(buf)) != -1) {
fos.write(buf, 0, len);
fos.flush();
}
fis.close();
fos.close();
}
}
复制代码
作者:
jant60
时间:
2015-1-13 11:33
面试里面笔试,需要写导入哪些包吗?是不是在纸上写呢?
作者:
lovejjfg
时间:
2015-1-13 11:51
好紧张啊!!
作者:
油茶籽
时间:
2015-1-13 12:12
面试还要手写代码么
作者:
帅帅
时间:
2015-1-13 12:54
只能先记下来去写了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2