黑马程序员技术交流社区
标题:
一个基础测试题,不知道怎么做
[打印本页]
作者:
HM王琦
时间:
2013-4-7 22:31
标题:
一个基础测试题,不知道怎么做
本帖最后由 HM王琦 于 2013-4-8 20:06 编辑
9,在D盘下的java文件夹中把扩展名为.java的文件复制到名为jad的文件夹中,文并把扩展名为.java的文件改为.jad文件。
我的思路是先将java文件夹中.java文件过滤出来,然后创建一个jad文件夹,把滤出来的文件复制到jad文件夹中,再把.java文件该为.jad文件。
有两个问题 1,怎么能把.java文件过滤出来;2,过滤出来后怎么改名字。
作者:
ㄨ____陌生
时间:
2013-4-7 22:52
package cn.javase.util;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FilenameFilter;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
public class Jad2Java {
public static void main(String[] args) throws Exception {
File srcDir = new File("java");
if(!(srcDir.exists() && srcDir.isDirectory()))
throw new Exception("目录不存在");
File[] files = srcDir.listFiles(
new FilenameFilter(){
public boolean accept(File dir, String name) {
return name.endsWith(".java");
}
}
);
System.out.println(files.length);
File destDir = new File("jad");
if(!destDir.exists()) destDir.mkdir();
for(File f :files){
FileInputStream fis = new FileInputStream(f);
String destFileName = f.getName().replaceAll("\\.java$", ".jad");
FileOutputStream fos = new FileOutputStream(new File(destDir,destFileName));
copy(fis,fos);
fis.close();
fos.close();
}
}
private static void copy(InputStream ips,OutputStream ops) throws Exception{
int len = 0;
byte[] buf = new byte[1024];
while((len = ips.read(buf)) != -1){
ops.write(buf,0,len);
}
}
}
作者:
王川
时间:
2013-4-7 23:07
file.getName().indexOf(".java")//过滤java文件
file.renameTo("yourPath/" + file.getName().substring(0, file.getName().lastIndexOf(".")) + ".jad");//改名为.jad文件
复制代码
你试试这样看行否
作者:
黄玉昆
时间:
2013-4-7 23:12
建议你把这个问题也可以写到这里:
http://bbs.itheima.com/thread-43374-1-1.html
作者:
赵晓东
时间:
2013-4-7 23:37
/*在D盘下的java文件夹中把扩展名为.java的文件复制
到名为jad的文件夹中,文并把扩展名为.java的文件改为.jad文件。
思路:
1.先判断文件是否为.java文件
2.如果是就复制到jad文件夹中
3.将复制过来的文件后缀名改为.jad
步骤:
1.使用listFiles列出java目录下所有文件
2.使用使用循环判断目录中的文件后缀名是否为.java(endsWith判断)
4.如果中了,把后缀名该为.jad文件(replace),在jad文件夹下建立同名文件,
3.复制文件
*/
import java.io.*;
class RemoveFile
{
public static void main(String[] args) throws IOException
{
File f = new File("E:\\javase"); //改成D盘下的java文件夹即可
BufferedReader br;
BufferedWriter bw;
File[] files = f.listFiles(); //获取Java文件夹下所有文件
for (File file : files)
{
if (file.getName().endsWith(".java")) //过滤“.java”文件
{
String child = file.getName().replace(".java",".jad"); //将后缀名改为".jad"
f = new File("D:\\jad",child); //目标目录
br = new BufferedReader(new FileReader(file));
bw = new BufferedWriter(new FileWriter(f));
String line = null;
while ((line = br.readLine()) != null)
{
bw.write(line); //复制文件
bw.newLine();
bw.flush();
}
br.close();
bw.close();
}
}
}
}
复制代码
作者:
潘廖明
时间:
2013-4-8 00:24
(1)过滤关键代码:
/**
* 取得在D:\java下后缀为".java"的所有文件
* @param srcDir
*/
private static void getFileName(File srcDir)
{
//测试此抽象路径名表示的文件或目录是否存在。
//测试此抽象路径名表示的文件是否是一个目录;
if (srcDir.exists() && srcDir.isDirectory())
{ files = srcDir.listFiles(new FilenameFilter()
{//实现过滤文件名的接口
@Override
public boolean accept(File dir, String name){
return name.endsWith(".java");//返回java为后缀的所有文件数组
}});
System.out.println("所以文件的个数为:"+files.length);
} else
{//该目录不存在时新建一个目录
System.out.println("该java文件目录不存在!");
srcDir.mkdir();
System.out.println("新建目录成功!");
}}
复制代码
(2)改名关键代码:
//将目标文件的后缀名改为--“.jad”
String targetSuffix = file.getName().replaceAll("\\.java", ".jad");
复制代码
作者:
黄玉昆
时间:
2013-4-8 09:03
如果问题未解决,请继续追问,如果没有问题了,请将帖子分类 改为“已解决”,谢谢
作者:
我手心里的宝
时间:
2013-4-8 09:07
我去,怎么了这是,考试题也贴出来了呀
作者:
梁航斌
时间:
2013-4-8 10:43
我是用split方法将获取的文件名截取,然后存的时候改的,上代码
/*编写一个程序,将d:\java 目录下的所有.java 文件复制到d:\jad 目录下,
并将原来文件的扩展名从.java 改为.jad。*/
import java.io.*;
import java.util.*;
class copyDemo
{
private static ArrayList<File> al = new ArrayList<File>();
public static void main(String []args) throws Exception{
Dir();
}
public static void Dir() throws Exception{
File f = new File("D://iava");
File []files = f.listFiles(new FileFilter(){
public boolean accept(File pathname){
return pathname.toString().contains(".java");
}
});
for(File file : files){
al.add(file);
}
for(File file:al){
System.out.println(file.toString());
copy(file);
}
}
public static void copy(File file) throws Exception{
//这里是将java改jad
String str[] = file.getName().toString().split("\\.");
File f = new File("D://jad//"+str[0]+".jad");
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(f));
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));
byte []b = new byte[1024];
int num = 0;
while((num=bis.read(b))!=-1){
bos.write(b,0,num);
}
bos.close();
bis.close();
}
}
复制代码
作者:
HM王琦
时间:
2013-4-8 20:03
不知道咋的,这些回复我现在才看到,谢谢你们的积极回答,我今天也搞了半天,搞出来了。把代码贴出来大家看一下
package com.itheima;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.FilenameFilter;
import java.io.IOException;
public class Test9 {
/*
* 将D盘下java文件夹中的.java文件复制到D盘下的jad文件夹中,并将.java文件改为.jad文件
*
*/
public static void main(String[] args) throws IOException {
File f=new File("F:\\java");
//指定路径创建文件夹
File f2=new File("F:\\jad\\");
f2.mkdir();
//过滤文件夹里的文件,只要.java文件
File[] files=f.listFiles(new FilenameFilter(){
public boolean accept(File dir,String name){
return name.endsWith(".java");
}
});
//过滤后的文件复制到指定文件夹
for(File file:files){
copyFile(file,f2);
}
}
//创建复制文件方法 ,指定源文件和复制文件路径。
public static void copyFile(File f,File f2) throws IOException{
BufferedWriter bufw=new BufferedWriter(new FileWriter(f2+"\\"+f.getName().replace(".java", ".jad")));
BufferedReader bufr=new BufferedReader(new FileReader(f));
String line=null;
while((line=bufr.readLine())!=null){
bufw.append(line);
bufw.newLine();
bufw.flush();
}
bufr.close();
bufw.close();
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2