FileReader,FileWriter,BufferedReader,BufferedWriter,File,FilenameFilter,PrintWriter,Seque)

/*
 * 
 * 获取指定目录下,指定扩展名的文件(包含子目录中的)
 * 这些文件的绝对路径写入到一个文本文件中。
 * 
 * 简单说,就是建立一个指定扩展名的文件的列表。 
 * 
 * 思路:
 * 1,必须进行深度遍历。
 * 2,要在遍历的过程中进行过滤。将符合条件的内容都存储到容器中。
 * 3,对容器中的内容进行遍历并将绝对路径写入到文件中。 
 * 
 *
 */

import java.util.*;
import java.io.*;
public class PrintList
{
public static void main(String args[]){
File dir = new File("q:/mycode");
List list = new ArrayList();
getFiles(dir,new FilenameFilter(){
public boolean accept(File dir, String name){
return name.endsWith(".java");
}  
},list);

File file = new File("q:/list.txt");
try{
if(!file.exists()){
file.createNewFile();
}
}catch(Exception e){

}
writeListToFile(list,file);
}

//遍历文件夹,得到符合filter的文件
public static void getFiles(File dir,FilenameFilter filter,List list){
File[] files = dir.listFiles();
for(File file:files){
if(file.isDirectory()){
getFiles(file,filter,list);
}else{
if(filter.accept(dir,file.getName())){
list.add(file);
}
}
}
}

//将list中的文件名写入txt
public static void writeListToFile(List list,File file){
BufferedWriter bw = null;
try{
bw = new BufferedWriter(new FileWriter(file,true));
Iterator it = list.iterator();
while(it.hasNext()){
File fileTemp = (File)it.next();
bw.write(fileTemp.getAbsolutePath());
bw.newLine();
bw.flush();
}
}catch(Exception e){

}finally{
try{
if(bw!=null)bw.close();
}catch(Exception e){

}
}
}
}


——————————————————————————————————————————————————————————————

import java.io.*;

public class IODemo
{
public static void main(String args[]) throws Exception{
/*
File file = new File("1.txt");
file.createNewFile();
System.out.println(file.getAbsolutePath());
*/
deleteDirectory(new File("q:/dd"),0);

}



public static void printWriterMethod() throws Exception{

/*
* PrintWriter:字符打印流。
* 构造函数参数:
* 1,字符串路径。
* 2,File对象。
* 3,字节输出流。
* 4,字符输出流。

*/
BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));

PrintWriter out = new PrintWriter(new FileWriter("out.txt"),true);

String line =  null;
while((line=bufr.readLine())!=null){
if("over".equals(line))
break;
out.println(line.toUpperCase());
// out.flush();
}

out.close();
bufr.close();

}


//删除文件夹,从最底层文件开始删
public static void deleteDirectory(File dir,int level){
File files[] = dir.listFiles();
for(File file:files){
if(file.isDirectory()){
deleteDirectory(file,level);
System.out.println(file.getName());
}else{
System.out.println(getLevel(level)+file.getName());
file.delete();
}
}
System.out.println(dir.getName());
dir.delete();
}

//递归文件夹
public static void listFiles(File f,int level) throws Exception{
File files[] = f.listFiles();
level++;
for(File file:files){
if(file.isDirectory()){
System.out.println("Directory:"+file.getName());
listFiles(file,level);
}else{
System.out.println(getLevel(level)+file.getName());
}
}
}

public static String getLevel(int level){
StringBuilder sb = new StringBuilder();
for(int i=0;i<level;i++){
sb.append("--");
}
return sb.toString();
}

//文件过滤
public static void filtFileMethod(){
File file = new File("q:/mycode");
File files[] = file.listFiles(new FilenameFilter(){
public boolean accept(File dir, String name){
if(name.endsWith(".class"))
return true;
return false;
}
});
for(File temp:files){
System.out.println(temp.getName());
}
}


//利用转换流指定码表
public static void characterSetFile(){
BufferedReader br = null;
BufferedWriter bw = null;
String line = null;
try{
br = new BufferedReader(new InputStreamReader(System.in,"UTF-8"));
bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("q:/6.txt"),"GB2312"));
while((line=br.readLine())!=null){
bw.write(line.toUpperCase());
bw.newLine();
bw.flush();
}
}catch(Exception e){
throw new RuntimeException("读写异常");
}finally{
try{
if(br!=null) br.close();
if(bw!=null) bw.close();
}catch(Exception e){

}
}
}

public static void readKeyToFile(){
BufferedReader br = null;
BufferedWriter bw = null;
String line = null;
try{
br = new BufferedReader(new InputStreamReader(System.in));
bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("q:/6.txt")));
while((line=br.readLine())!=null){
bw.write(line.toUpperCase());
bw.newLine();
bw.flush();
}
}catch(Exception e){
throw new RuntimeException("读写异常");
}finally{
try{
if(br!=null) br.close();
if(bw!=null) bw.close();
}catch(Exception e){

}
}
}

//用到转换流
public static void readKey2() throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
while(true){
System.out.println(br.readLine());
}
}

public static void readKey() throws Exception{
InputStream in = System.in;
while(true){
int ch = in.read();
System.out.println((char)ch);
}
}

public static void ByteStreamCopyMethod(){
FileInputStream fis = null;
FileOutputStream fos = null;
try{
fis = new FileInputStream("q://1.txt");
fos = new FileOutputStream("q://7.txt");
byte b[] = new byte[1024];
int len = 0;
while((len=fis.read(b))!=-1){
fos.write(b,0,len);
}

}catch(Exception e){

}
}

public static void lineNumberReaderMethod(){
FileReader fr = null;
LineNumberReader lnr = null;
try{
fr = new FileReader("q:/1.txt");
 lnr = new LineNumberReader(fr);

String line = null;
lnr.setLineNumber(100);
while((line=lnr.readLine())!=null){
System.out.println(lnr.getLineNumber()+":"+line);
}
}catch(Exception e){

}finally{
if(lnr!=null)
try{
lnr.close();
}catch(Exception e){

}

}

}

public static void copyTextByBuffered(){
FileReader reader = null;
FileWriter writer = null;
BufferedReader br = null;
BufferedWriter bw = null;
try{
reader = new FileReader("q://1.txt");
br = new BufferedReader(reader);
writer = new FileWriter("q://5.txt");
bw = new BufferedWriter(writer);
String line = null;
while((line=br.readLine())!=null){
bw.write(line);
bw.newLine();
bw.flush();
}
}catch(Exception e){

}finally{
try{
if(br!=null)br.close();
if(bw!=null)bw.close();
}catch(Exception e){

}
}
}

public static void bufferedWriterMethod(){
FileWriter writer = null;
BufferedWriter bw = null;
try{
writer = new FileWriter("q:/2.txt",true);
bw = new BufferedWriter(writer);
bw.write("hehe");
bw.newLine();
bw.write("hah");
bw.flush();
}catch(Exception e){

}finally{
if(bw!=null){
try{
bw.close();
}catch(Exception e){

}
}
}
}

public static void bufferedReaderMethod(){
FileReader reader = null;
BufferedReader br = null;
StringBuilder sb = new StringBuilder();
try{
reader = new FileReader("q:/1.txt");
br = new BufferedReader(reader);
String readLine = null;
while((readLine=br.readLine())!=null){
sb.append(readLine+"\r\n");
}
sb.deleteCharAt(sb.length()-1);//两个转义字符,占两个char
sb.deleteCharAt(sb.length()-1);
}catch(Exception e){

}finally{
if(br!=null){
try{
br.close();
}catch(Exception e){

}
}
}
System.out.print(sb.toString());
}

//复制文件
public static void copyTextTest(){
FileReader reader = null;
FileWriter writer = null;
try{
reader = new FileReader("q:/1.txt");
writer = new FileWriter("q:/3.txt");
copy(reader,writer);
}catch(Exception e){

}finally{
try{
if(reader!=null)
reader.close();
if(writer!=null)
writer.close();
}catch(Exception e){

}
}
}

//复制文件1
public static void copy(FileReader reader,FileWriter writer) throws IOException{
int len = 0;
char ch[] = new char[1024];
while((len=reader.read(ch))!=-1){
writer.write(ch,0,len);
}
}
//复制文件2
public static void copy2(FileReader reader,FileWriter writer) throws IOException{
int len ;
while((len=reader.read())!=-1){
writer.write(len);
}
}

//读文件
public static void fileReaderMethod2(){
FileReader reader = null;
StringBuilder sb = new StringBuilder();
try{
reader = new FileReader("q:/1.txt");
char[] ch = new char[1024];
int len = 0;
while((len=reader.read(ch))!=-1){
sb.append(new String(ch,0,len));
}
}catch(Exception e){

}finally{
if(reader!=null){
try{
reader.close();
}catch(Exception e){

}
}
}
System.out.println(sb.toString());
}

public static void fileReaderMethod1(){
StringBuilder sb = new StringBuilder();
FileReader reader = null;
try{
reader = new FileReader("q:/1.txt");
int ch;
while((ch=reader.read())!=-1){
sb.append((char)ch);
}
}catch(Exception e){
System.out.println("打开文件异常");
}finally{
if(reader!=null){
try{
reader.close();
}catch(Exception e){

}
}
}
System.out.println(sb.toString());
}

//写出文件
public static void fileWriterMethod(){
FileWriter writer = null;
try{
writer = new FileWriter("q:/1.txt",true);
writer.write("hello boy");
writer.flush();
}catch(Exception e){

}finally{
if(writer!=null){
try{
writer.close();
}catch(Exception e){

}
}
}

}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值