package com.swift;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException; public class Copy_java_To_txt { public static void main(String[] args) {
/*
* 把一个文件夹下的.java文件复制到另一个文件夹下的.txt文件
*/
try {
StringBuffer sb = new StringBuffer();
BufferedReader br = new BufferedReader(
new InputStreamReader(new FileInputStream("e:\\neck\\test.java"), "utf-8"));
String str;
while ((str = br.readLine()) != null) {
System.out.println("从文件中读取了一行...");
sb.append(str);
sb.append("\r\n");
} System.out.println("文件读取到容器成功"+"\r\n"+sb.toString()); String dir="e:\\apple";
String fileName="test.txt";
File file=new File(dir,fileName);
if(!file.getParentFile().exists()) {
System.out.println(file.getParentFile()+"目录不存在,即将创建...");
file.getParentFile().mkdirs();
}else {
System.out.println("目录存在,不用创建...");
}
BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file),"utf-8"));
bw.write(sb.toString());
bw.flush(); } catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
} }

上面是指定哪个文件进行复制

下边是搜索出所有的以.java结尾的文件复制到另一个文件夹并改名

需要用到下边的两种列表

list()方法是返回某个目录下的所有文件和目录的文件名,返回的是String数组

listFiles()方法是返回某个目录下所有文件和目录的绝对路径,返回的是File数组

package com.swift;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileFilter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException; public class Copy_java_To_txt { public static void main(String[] args) {
/*
* 把一个文件夹下的.java文件(需要搜索所有以.java结尾的文件)复制到另一个文件夹下的.txt文件(改名为.txt的文件)
*/
File[] files = null;
try {
StringBuffer sb = new StringBuffer();
File dir_source = new File("e:\\neck");
File dir_destination = new File("e:\\apple"); if(!dir_destination.exists()) {
dir_destination.mkdirs();
} if (dir_source.exists()) {
System.out.println("搜索地址存在...");
if (dir_source.isDirectory()) {
System.out.println("此地址是一个目录...");
files = dir_source.listFiles(new FileFilter() { @Override
public boolean accept(File arg0) {
return arg0.getName().endsWith(".java");
}
});
} else {
System.out.println("此地址不是目录...");
}
} else {
System.out.println("搜索地址不存在...");
} for (File f : files) {
System.out.println(f);
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(f), "utf-8"));
String str;
while ((str = br.readLine()) != null) {
System.out.println("从文件中读取了一行...");
sb.append(str);
sb.append("\r\n");
} System.out.println("一个 文件读取到容器成功" + "\r\n" + sb.toString()); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream(new File(dir_destination, f.getName().replaceAll(".java", ".txt"))),
"utf-8"));
bw.write(sb.toString());
bw.flush();
sb.delete(0, sb.length());//也可以sb.setLength(0);sb= new StringBuffer();都可以清空StringBuffer }
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
} }

Java基础面试操作题: File IO 文件过滤器FileFilter 练习 把一个文件夹下的.java文件复制到另一个文件夹下的.txt文件的更多相关文章

  1. Java基础面试操作题:读取该文件内容,并按照自然顺序排序后输出到 另一个文件中

    package com.swift; import java.io.FileInputStream; import java.io.FileNotFoundException; import java ...

  2. Java基础面试操作题: 获取 1-20 之间的随机数,共计 20 个,要求不能重复 获取 1-20 之间的随机数,共计 10 个,要求不能重

    package com.swift; import java.util.HashSet; import java.util.Random; import java.util.Set; public c ...

  3. Java基础面试操作题:线程同步代码块 两个客户往一个银行存钱,每人存三十次一次存一百。 模拟银行存钱功能,时时银行现金数。

    package com.swift; public class Bank_Customer_Test { public static void main(String[] args) { /* * 两 ...

  4. Java基础面试操作题: 线程问题,写一个死锁(原理:只有互相都等待对方放弃资源才会产生死锁)

    package com.swift; public class DeadLock implements Runnable { private boolean flag; DeadLock(boolea ...

  5. Java基础面试操作题:Java代理工厂设计模式 ProxyFactory 有一个Baby类,有Cry行为,Baby可以配一个保姆 但是作为保姆必须遵守保姆协议:能够处理Baby类Cry的行为,如喂奶、哄睡觉。

    package com.swift; public class Baby_Baomu_ProxyFactory_Test { public static void main(String[] args ...

  6. Java基础复习笔记系列 七 IO操作

    Java基础复习笔记系列之 IO操作 我们说的出入,都是站在程序的角度来说的.FileInputStream是读入数据.?????? 1.流是什么东西? 这章的理解的关键是:形象思维.一个管道插入了一 ...

  7. Java基础面试系列(一)

    Java基础面试总结(一) 1. 面向对象和面向过程的区别 面向过程 面向对象 性能 高于面向对象 类加载的时候需要实例化,比较消耗资源 三易(易维护,易复用,易扩展) 不如面向对象 具有封装,继承, ...

  8. Java基础-线程操作共享数据的安全问题

    Java基础-线程操作共享数据的安全问题 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.引发线程安全问题 如果有多个线程在同时运行,而这些线程可能会同时运行这段代码.程序每次运 ...

  9. Linux将一个文件夹或文件夹下的所有内容复制到另一个文件夹

    Linux将一个文件夹或文件夹下的所有内容复制到另一个文件夹     1.将一个文件夹下的所有内容复制到另一个文件夹下 cp -r /home/packageA/* /home/cp/packageB ...

随机推荐

  1. 51nod1113(矩阵快速幂模板)

    题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1113 题意:中文题诶- 思路:矩阵快速幂模板 代码: #inc ...

  2. AGC001 D - Arrays and Palindrome【构造】

    把回文串的相等关系连一下,发现最后要求的是一笔画问题 注意到奇数长度的中间有一个单独没有连线的,所以a数组至多有两个奇数值 如果没有奇数,那么b在最前面放一个1,然后把a[1]~a[m-1]放上去,这 ...

  3. VBA for AutoCAD

    Download the Microsoft Visual Basic for Applications Module (VBA) 2016 Downloads AutoCAD 2016 VBA mo ...

  4. IT兄弟连 Java语法教程 编译Java程序

    编写好Java程序的源代码后,接下来就应该编译该Java源文件来生成字节码文件了. 编译Java程序需要使用JDK中提供的javac命令,因为已经把javac命令所在的路径添加到了系统的Path环境变 ...

  5. C# 多线程程序隐患

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  6. Codeforces Round #433 (Div. 2, based on Olympiad of Metropolises) C

    Helen works in Metropolis airport. She is responsible for creating a departure schedule. There are n ...

  7. [NWPU2016][寒假作业][正常版第三组]R&&HDU1240

    题意是有个三维的地图,从起点到终点的最短路径.用bfs做,不过这个题坑的地方在于,开三维数组你要搞清楚纬度的关系.a[i][j][h] i是层,j是行,h是列.然后坐标呢,又是列,行,层,所以如果要用 ...

  8. NET Core断点续传

    .NET Core断点续传   ASP.NET Core断点续传 在ASP.NET WebAPi写过完整的断点续传文章,目前我对ASP.NET Core仅止于整体上会用,对于原理还未去深入学习,由于有 ...

  9. Jexus 5.8.2

    Jexus 5.8.2 正式发布为Asp.Net Core进入生产环境提供平台支持   Jexus 是一款运行于 Linux 平台,以支持  ASP.NET.PHP 为特色的集高安全性和高性能为一体的 ...

  10. PartTime_20160608

    1. http://www.680.com/pojie/398074.html 2. http://www.680.com/pojie/398865.html 3.