`
ak23173969
  • 浏览: 29372 次
社区版块
存档分类
最新评论

javaIo流实际应用

阅读更多
/*查看目录下所有的文件*/  

package cn.file;   

import java.io.File;


public class Text2 {
	public static void main(String[] args) {
		File a=new File("F:\\图片");
		File a1=new File("F:\\你的");
		chek(a1);
	}
	public static void chek(File f3) {//查看目录下的所有文件
		if(f3.exists()){  
			if(f3.isDirectory()){
				File [] f=f3.listFiles();//查看目录的文件
				for(int i=0;i<f.length;i++){
					chek(f[i]);
				}
			}
			else {System.out.println(f3);};
		}
	}
 复制子目录

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Reader;
import java.io.Writer;



	//练习:关于目录的拷贝?
	public class Text6 {   
		// 缓冲区大小
	    private static final int buffer_size = 1024*2;   
	    // 源和目标检测
	    private static void doCopy(File src, File dst)throws IOException {   
	        if (src.isFile()) {   
	        	  copyFile(src, dst);   
	        } else {   
	            File dir = copyDirectory(src, dst);   
	            File[] files = src.listFiles();   
	            if (files.length == 0) {   
	  
	            } else {   
	                for (File file : files) {   
	                    doCopy(file, dir);   
	                }   
	            }   
	        }   
	    }   
	    // 拷贝实现
	    public static void copy(File src, File dst) throws IOException {   
	      
	            doCopy(src, dst);   
	        
	           
	    }   
	    // 文件拷贝
	    private static void copyFile(File src, File dst) throws IOException {   
	        File file = new File(dst, src.getName());   
	        copy(new BufferedInputStream(new FileInputStream(src)), new BufferedOutputStream(new FileOutputStream(file)));   
	    }   
	    // 目录拷贝  要在目标设备中创建目录
	    private static File copyDirectory(File src, File dst) {   
	        File file = new File(dst, src.getName());   
	        file.mkdir();   
	        return file;   
	    }   
	    // 拷贝
	    private static int copy(BufferedInputStream in, BufferedOutputStream out) throws IOException {   
	        int byteCount = 0;  //                        问号  byteCount 
	        try {   
	            int bytesReader = 0;   
	            byte [] buffer = new byte[buffer_size];   
	  
	            while ((bytesReader = in.read(buffer)) != -1) {   
	                out.write(buffer, 0, bytesReader);   
	                byteCount += bytesReader;   
	            }   
	            out.flush();   
	        } finally {   
	            in.close();   
	            out.close();   
	        }   
	        return byteCount;   
	    }   

		public static void main(String[] args)throws IOException 
		{
			File a=new File("F:\\测试的文件");
			File b=new File("F:\\我的");
			copy(a,b);		
			System.out.println("finish.................");
		}
	  
	} 

给文件改名

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;


public class Text1{
	public static void main(String[] args)throws IOException {
		File a=new File("F:\\测试的文件\\我的");
		File b=new File("F:\\测试的文件\\我的");
		copyList(a,b);
		
	}
	public static void copyList(File a,File b )throws IOException{//第一步
		File c=a;
		BufferedInputStream bis=null;
		BufferedOutputStream bos=null;
		byte bs []=new byte [1024];
		if (!b.exists()){  //判断b的文件夹是否存在 
			b.mkdir();
		}
		if(c.isDirectory()){
			File d [] =c.listFiles();//得到目录文件的数组
				if(d!=null){//判断文件目录是否为空
				for (int i=0;i<d.length;i++){
					copyList(d[i],b);//递归查询
					//System.out.println(d[i]);//查看目录里的文件
					if(d[i].isFile()){
						if(d[i].getName().endsWith(".jpg")){//根据条件判断的复制
							int rel=0;
							bis=new BufferedInputStream(new FileInputStream(d[i]));
							bos=new BufferedOutputStream(new FileOutputStream(new File(b,i+".jpg")));
							while((rel=bis.read(bs))!=-1){
								bos.write(bs, 0, rel);
								bos.flush();
							}
							bos.close();
							bis.close();
							d[i].delete();//复制后删去复制的文件   这样看起来像是剪切
						}
					}
				}
			}	
		}else{System.out.println(c);}
	}
}

 

/**过滤后复制文件夹*/

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

//经典过滤方案  用到 iO流 递归 
public class Text4 {
	public static void print(File dir,File f2 )throws IOException{
		//判断鱼塘是否存在
		if (dir!=null){
			//判断鱼塘是否有鱼
			if (dir.isDirectory()){
				//把鱼塘里面所有东西装箱
				File f []=dir.listFiles();
				//判断箱子是否为空
					if (f!=null){
						//遍历箱子里面的东西
						for (int i=0;i<f.length;i++){
							//假如箱子里还有箱子就继续打开	
							print(f[i],f2);
							if (f[i].isFile()){
								String name =f[i].getName();
								if(name.endsWith(".jpg")){
									BufferedInputStream bi=new BufferedInputStream(new FileInputStream(f[i]));
									BufferedOutputStream bo=new BufferedOutputStream(new FileOutputStream(new File(f2,f[i].getName())));
									int rel=0;
									byte [] bs=new byte [1024];
									while((rel=bi.read(bs))!=-1){
										bo.write(bs,0,rel);
										bo.flush();	
										//f[i].delete();//复制后删去复制的文件   这样看起来像是剪切
								}
								
							}
						
							
					}							
				}					
			}else{//System.out.println(dir);
			};
		}
		
		}
	}
	 
	public static void main(String[] args) throws IOException {
	
			File f1=new File("F:\\音乐");
			File f2=new File("D:\\速度1");
			print(f1,f2);
			System.out.println("复制成功");
		//print(new File("F:"+File.separator+"音乐"));
	
		//System.out.println("遍历文件夹");
	}
}

 /*删除文件与文件夹*/  

import java.io.File;
import java.io.IOException;

public class Text3 {
	public static void main(String[] args) throws IOException {
		File f=new File("F:\\我的");
		delect(f);
	}
	public static void delect(File s){
		File b []=null;
		if(s.exists()){//判读是否存在
			if(s.isDirectory()){//判断是不是目录
				b=s.listFiles();   
				if(b!=null){
					for(int i=0;i<b.length;i++){
						if(b[i].isFile()){ //判断是不是目录
							b[i].delete();//删除子文件
						}else{
							delect(b[i]);//递归
							b[i].delete();}//删除子目录
					}
				}
			}else{s.delete();};
			s.delete();
		}
	}
}

 

0
4
分享到:
评论
2 楼 ak23173969 2013-10-10  
这个是我刚学java时写的,我仔细看了下,确实应该改进,谢谢
1 楼 buleFish_java 2013-10-10  
for(int i=0;i<b.length;i++){   
    if(b[i].isFile()){ //判断是不是目录   
       b[i].delete();//删除子文件   
    }else{   
       delect(b[i]);//递归   
       b[i].delete();
    }//删除子目录   
}   



会不会绕了点,
for(int i=0;i<b.length;i++){   
    if(!b[i].isFile()){ //判断是不是目录   
          
       delect(b[i]);//递归   
       b[i].delete();
    }//删除子目录   
 b[i].delete();//删除子文件   

}   


相关推荐

    JAVA IO流技术

    理解并熟练运用Java IO流技术是开发Java应用程序的关键,它能够有效地处理数据的读写操作,无论是简单的文本文件还是复杂的网络通信。在实际编程中,根据需求选择适当的流类型,结合处理流进行优化,可以构建出高效...

    java IO流精讲 JAVA IO流实例开发

    Java IO流是Java平台中用于处理输入/输出操作的核心组件,它允许程序与各种数据源(如文件、网络连接、内存缓冲区等)进行交互。Java IO流的精讲涵盖了许多概念和技术,包括流的分类、流的方向、缓冲区的使用、字符...

    java io流学习笔记1

    Java IO流是Java编程语言中处理输入输出操作的重要部分,尤其在数据传输、文件读写等方面发挥着核心作用。本文将深入探讨Java IO流的基本概念、类型以及它们在实际开发中的应用。 首先,理解IO流的基本概念至关重要...

    《JAVA_IO流学习总结》

    在本文中,我们将深入探讨Java IO流的各个方面,包括它的分类、工作原理、常见类以及实际应用。 一、IO流的分类 Java IO流分为两大类:字节流和字符流。字节流处理的是单个8位的字节,而字符流处理的是16位Unicode...

    java之io流实例

    本文将深入探讨Java的IO流实例应用,旨在帮助开发者更好地理解和掌握这一关键概念。 IO流在Java中分为两大类:字符流(Character Stream)和字节流(Byte Stream)。字符流处理的是Unicode编码的字符,而字节流则...

    java IO流的使用

    读写文件是Java IO流应用最广泛的场景之一。下面将详细介绍如何使用Java IO流进行文件的读取和写入操作。 1. **文件读取**: - 使用`FileInputStream`或`BufferedReader`类读取字节流或字符流。例如,使用`...

    java基础之IO流

    ### Java IO流基础知识点 #### 一、IO流概述 - **定义**:在Java中,IO流(Input/Output Streams)是用来处理输入输出的基本工具。流是一种有序的数据集合,通常涉及从源到目的地的数据传输过程。源可以是文件、...

    java IO流详解

    ### Java IO流详解 #### 一、流的概述与分类 在Java中,流是一种抽象概念,用于描述数据从一个地方传输到另一个地方的过程。它主要用于处理数据输入和输出,例如从磁盘读取文件、向网络发送数据或从键盘接收用户...

    java中IO流例子

    Java中的IO流是Java平台提供的一种处理输入输出数据的核心机制,广泛应用于文件读写、网络通信、数据转换等场景。IO流分为字节流(Byte Stream)和字符流(Character Stream),它们构成了Java IO系统的基础。 1. *...

    Java基础篇:IO流.pdf

    Java IO流是Java编程语言中用于处理输入输出操作的一个重要概念。它允许程序读取数据源或向数据目的地写入数据。...通过合理地组织和管理IO流,可以在不同的应用场合下灵活使用,满足各种数据输入输出的需求。

    Java IO流完整解读

    Java IO流是Java平台中的核心概念,用于处理输入和输出数据。在Java中,I/O流分为两大类:字节流(Byte Stream)和字符流(Character Stream)。字节流处理单个字节的数据,而字符流处理Unicode字符集中的字符。Java...

    利用java的IO流写的一个记事本

    下面将详细探讨Java IO流的原理及其在开发记事本应用中的运用。 首先,Java的IO流分为两大类:字节流和字符流。字节流处理的是8位的字节,适用于处理任何类型的数据,如图片、音频、视频等;而字符流处理的是16位的...

    Java-Io流,练习

    Java的IO流是Java编程语言中的重要组成部分,它主要用于数据的输入和输出操作。在Java中,IO流被设计为处理任何类型的数据,包括字符、字节甚至对象。本练习旨在帮助初学者理解和掌握Java IO流的基础知识。 一、IO...

    java IO流操作详解源代码下载

    在这个详细的源代码下载中,我们可以通过四篇相关的CSDN博客文章来深入理解Java IO流的工作原理和实际应用。 首先,我们需要了解Java IO流的分类。Java IO库中的流分为字节流和字符流两大类,每类又分为输入流和...

    JAVA IO流详解

    Java IO流是Java编程中非常基础且重要的部分,无论是进行简单的文件操作还是复杂的网络通信,都离不开对IO流的理解和应用。掌握Java IO流不仅可以提高代码的可维护性和扩展性,还能有效提升程序员解决问题的能力。...

    jsp .java中输入输出流 java IO 下载 流的应用先01 > 02 > 01

    1. **Java IO流**:Java IO流是Java平台的核心特性之一,它提供了一种处理数据的机制,允许程序进行读写操作。Java IO流分为字符流和字节流,其中字符流处理Unicode字符,而字节流处理原始的8位字节数据。此外,还有...

    java IO流方式上传下载文件,源代码

    本篇文章将深入探讨如何使用Java IO流实现文件的上传和下载功能,以及两个已测试通过的JSP程序——`uploadDRFile.jsp`和`daoRuform.jsp`的应用。 1. **文件上传**: 文件上传通常发生在用户通过网页表单选择本地...

    马士兵老师的java io流课程

    Java IO流课程是Java编程领域中的重要组成部分,尤其对于初学者和有经验的开发者来说,理解和熟练运用IO流是至关重要的。马士兵老师的这门课程深入浅出地讲解了Java IO流的相关概念和技术,旨在帮助学员掌握数据输入...

Global site tag (gtag.js) - Google Analytics