面试题之——将文件夹下java文件写入到新的文件夹,并修改扩展名
题目:将d:/code/java文件夹下的所有.java文件复制到d:/code/java/jad文件夹下并且将原来的文件的扩展名.java改为.jad
源代码:
package com.zyh.interview; import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FilenameFilter;
import java.io.InputStream;
import java.io.OutputStream; /**
* 将d:/code/java文件夹下的所有.java文件复制到d:/code/java/jad文件夹下
* 并且将原来的文件的扩展名.java改为.jad
* @author zyh
*
*/
public class Java2Jad_q112 {
public static void main(String[] args) throws Exception {
/*第一步:获取文件目录*/
File dir = new File("d:/code/java");
if(!(dir.exists()&&dir.isDirectory())) {
throw new Exception("目录" + dir.getAbsolutePath() + "不存在");
}
/*第二步:列出该目录下所有的.java文件*/
File[] files = dir.listFiles(new FilenameFilter() {
//获取.java文件时使用listFiles(FilenameFilter filter)方法,创建一个过滤文件名的Filter
@Override
public boolean accept(File dir, String name) {
if(name != null && "".equals("")) {
//检测文件名是否是以.java结尾,是返回true,否则继续检测下一个文件
if(name.toLowerCase().endsWith(".java")) {
return true;
}
}
return false;
}
});
/*第三步:获取目标文件夹,如果不存在就建立该文件夹*/
File destDir = new File("d:/code/java/jad");
if(!destDir.exists()) {
destDir.mkdir();
}
for(File file : files) {
System.out.println(file.getName());
FileInputStream fis = new FileInputStream(file);
/*第四步:将得到的文件名称的扩展名改为.jad*/
String destFileName = file.getName().replaceAll("\\.java$", "\\.jad");
FileOutputStream fos = new FileOutputStream(new File(destDir, destFileName));
/*第五步:将文件重新写入目标文件夹*/
copy(fis, fos);
fis.close();
fos.close();
}
}
public static void copy(InputStream in, OutputStream out) throws Exception {
byte[] buf = new byte[1024];
int len = 0;
/*读取文件内容并写入文件字节流中*/
while((len = in.read(buf))!=-1) {
out.write(buf, 0, len);
}
}
}
面试题之——将文件夹下java文件写入到新的文件夹,并修改扩展名的更多相关文章
- .NET Core中复制源文件夹下的所有内容到新文件夹
.NET Core中没有原生的复制文件夹方法,我们可以自己写个: 新建一个.NET Core控制台项目,示例代码如下: using System; using System.IO; namespace ...
- Python将文件夹下的文件名写入excel方便统计
如题,贴代码: 1 ''' 2 #python将某文件夹下的文件名存储到excel中 3 ''' 4 5 #导入所需模块 6 import os 7 import xlwt 8 9 #定义要处理的文件 ...
- 统计文件夹下java代码行数的小程序--主要是学习任务队列的思想
首先感谢czbk的老师,录制的视频,让我们有这么好的学习资料.……—— 统计文件夹java文件的行数,首先想到的肯定是用递归的方法,因为文件夹下面可能包含文件夹,用递归的方法,代码容易写.(这和写简单 ...
- 如何将Debug文件夹下的资源打包成一个EXE文件直接执行
前言:前段时间写了个小程序,想分享给好友看看,可所以资源都放在Debug文件夹下,整个文件夹发给人家这也太……,为了显得稍微专业一点,想把它们打包一个EXE文件执行,因为我见到到这样的程序,直接一个E ...
- webform工程中aspx页面为何不能调用appcode文件夹下的类(ASP.NET特殊文件夹的用法)
App_code 只有website类型的工程才有效. App_Code 下创建的.cs文件仅仅是“内容”不是代码.你设置那个文件为“编译”就行了. 其他特殊文件夹 1. Bin文件夹 Bin文件夹包 ...
- 单文件夹下的C程序如何编写Makefile文件
通过学习已经学会了GCC的一些基础的命令,以及如何将C语言源代码编译成可执行文件. 我们已经知道在linux环境下编译源码时,常会有以下三个步骤: ./configure make make clea ...
- 解决SharePoint下载文件时自动修改扩展名的问题
今天,有人告诉了我一个有趣的问题.当用户将一个扩展名为.ai的文件(Adobe illustrator格式的文件)上载到SharePoint 2013文档库中之后,点击它下载时,下载提示栏所显示的文件 ...
- 监控文件内容变化,即时写入到新文件(tail)
监控文件a,如有新内容写入,即时将新内容写入到新文件aa中: fw=open('e:\\aa.txt','ab') with open('e:\\a.txt','rb') as fo: while T ...
- 动手动脑---找出指定文件夹下所有包容指定字符串的txt文件
思路:先判断是否为文件,如果是文件,则需要判断改文件名是否包含字符串"txt",包含则输出.如果是文件夹的话,先需要判断文件名是否包含".txt"(因为文件名也 ...
随机推荐
- SIEM思考
https://securosis.com/blog/comments/understanding-and-selecting-siem-log-management-introduction/ ht ...
- Zigbee、WiFi和433MHz无线技术各有特点
Zigbee.WiFi和433MHz无线技术都属于近距离无线通讯技术,并且都使用ISM免执照频段,但它们各具特点. ZigBee的特点是低功耗.高可靠性.强抗干扰性,布网容易,通过无线中继器可以非 ...
- Mysql explain 查看分区表
mysql> explain select * from ClientActionTrack where startTime>'2016-08-25 00:00:00' and start ...
- 从Linux终端管理进程:10个你必须知道的命令
从Linux终端管理进程:10个你必须知道的命令 Linux终端有一系列有用的命令.它们可以显示正在运行的进程.杀死进程和改变进程的优先级.本文列举了一些经典传统的命令和一些有用新颖的命令.本文提到的 ...
- cf455A Boredom
A. Boredom time limit per test 1 second memory limit per test 256 megabytes input standard input out ...
- HDU2842-Chinese Rings(递推+矩阵高速幂)
pid=2842">题目链接 题意:求出最少步骤解出九连环. 取出第k个的条件是,k-2个已被取出,k-1个仍在支架上. 思路:想必九连环都玩过吧,事实上最少步骤就是从最后一个环開始. ...
- 依赖注入及AOP简述(七)——FQCN请求模式
2.2. FQCN请求模式 为了弥补纯字符串请求模式中的类型安全问题,全类名(FQCN)请求模式就应运而生了.其思想便是,在向容器请求依赖对象的时候,不是通过字符串的标识符.而是通过被请求的依赖 ...
- 【27前端】背景半透明rgba LESS实践
今天有看到司徒正美<背景半透明rgba最佳实践>的文章和里面推荐的一个在线工具CSS背景颜色属性值转换 . 于是联系到自己的less库,新技能Get. 内容如下: /*在你的less库中 ...
- CSS中为什么overflow:hidden能清除浮动(float)的影响?原理是什么?
http://www.zhihu.com/question/30938856 父块没有设置指定的高宽,当子块设置为浮动后,原本包裹子块的父块的高度塌陷消失,这时给父块设置overflow:hidden ...
- android Handler更新UI
android中经常需要更新界面某个元素的值,但是在主线程中是不可以直接更新主线程的值.这里推荐通过handler机制来更新值. 一Handler的定义: 主要接受子线程发送的数据, 并用此数据配合主 ...