`
eriol
  • 浏览: 408968 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Java中的文件操作

    博客分类:
  • Java
阅读更多

使用Java实现一些文件操作。

 

import java.io.*;

public class FileOperator {
	
	public FileOperator() {
	}
	
	/**
	 * Create new folder
	 * @param folderPath String as c:/test
	 */
	public void newFolder(String folderPath) {
		try {
			File myFilePath = new File(folderPath);
			if (!myFilePath.exists()) {
				myFilePath.mkdir();
			}
		} catch (Exception e) {
			System.out.println("error in creating folder");
			e.printStackTrace();
		}
	}
	
	/**
	 * Create new file
	 * @param filePath String as c:/test.txt
	 * @param fileContent
	 */
	public void newFile(String filePath, String fileContent) {
		try {
			File file = new File(filePath);
			if (!file.exists()) {
				file.createNewFile();
			}
			
			FileWriter writer = new FileWriter(filePath);
			PrintWriter out = new PrintWriter(writer);
			out.println(fileContent);
			writer.close();
		} catch (Exception e) {
			System.out.println("error in creating new file");
			e.printStackTrace();
		}
	}
	
	/**
	 * Delete a file
	 * @param filePath
	 */
	public void delFile(String filePath) {
		try {
			File file = new File(filePath);
			file.delete();
		} catch (Exception e) {
			System.out.println("error in deleting file");
			e.printStackTrace();
		}
	}
	
	/**
	 * Delete folder
	 * @param folderPath
	 */
	public void delFolder(String folderPath) {
		try {
			delAllFile(folderPath);	//删除完里面所有内容
			File folder = new File(folderPath);
			folder.delete();	//删除空文件夹
		} catch (Exception e) {
			System.out.println("error in deleting folder");
			e.printStackTrace();
		}
	}
	
	/**
	 * Delete all files
	 * @param folderPath
	 */
	public void delAllFile(String folderPath) {
		try {
			File folder = new File(folderPath);
			if (!folder.exists()) {
				return;
			}
			if (!folder.isDirectory()) {
				return;
			}
			String[] fileList = folder.list();
			String path = null;
			if (!folderPath.endsWith(File.separator)) {
				path = folderPath + File.separator;
			}
			for (int i = 0; i < fileList.length; i++) {
				File file = new File(path + fileList[i]);
				if (file.isFile()) {
					file.delete();
				} else if (file.isDirectory()) {
					delAllFile(path + fileList[i]);	//先删除文件夹里面的文件
					delFolder(path + fileList[i]);	//再删除空文件夹
				}
			}
		} catch (Exception e) {
			System.out.println("error in deleting all files");
			e.printStackTrace();
		}
	}
	
	/**
	 * Copy a file
	 * @param sourcePath
	 * @param destPath
	 */
	public void copyFile(String sourcePath, String destPath) {
		try {
			int bytesum = 0;
			int byteread = 0;
			File file = new File(sourcePath);
			if (file.exists()) {	 //文件存在时
				InputStream in = new FileInputStream(sourcePath);
				FileOutputStream out = new FileOutputStream(destPath);
				byte[] buffer = new byte[1024];
				while ((byteread = in.read(buffer)) != -1) {
					bytesum += byteread;	//字节数 文件大小
					System.out.println(bytesum);
					out.write(buffer, 0, byteread);
				}
				out.flush();
				out.close();
				in.close();
			}
		} catch (Exception e) {
			System.out.println("error in copy file");
			e.printStackTrace();
		}
	}
	
	/**
	 * Copy folder
	 * @param sourcePath
	 * @param destPath
	 */
	public void copyFolder(String sourcePath, String destPath) {
		try {
			new File(destPath).mkdir();
			File folder = new File(sourcePath);
			String[] fileList = folder.list();
			String source = null;
			String dest = null;
			if (!sourcePath.endsWith(File.separator))
					source = sourcePath + File.separator;
			if (!destPath.endsWith(File.separator))
				dest = destPath + File.separator;
			for (int i = 0; i < fileList.length; i++) {
				File file = new File(source + fileList[i]);
				if (file.isFile()) {
					copyFile(source+fileList[i], dest+fileList[i]);
				} else if (file.isDirectory()) {
					copyFolder(source+fileList[i], dest+fileList[i]);
				}
			}
		} catch (Exception e) {
			System.out.println("error in copying folder");
			e.printStackTrace();
		}
	}
	
	/**
	 * Move file
	 * @param sourcePath
	 * @param destPath
	 */
	public void moveFile(String sourcePath, String destPath) {
		copyFile(sourcePath, destPath);
		delFile(sourcePath);
	}
	
	/**
	 * Move folder
	 * @param sourcePath
	 * @param destPath
	 */
	public void moveFolder(String sourcePath, String destPath) {
		copyFolder(sourcePath, destPath);
		delFolder(sourcePath);
	}
	
	/**
	 * displayFiles
	 * @param path
	 */
	public void displayFiles(String path) {
		File file = new File(path);
		if (file.isFile()) {
			System.out.println(file.getName());
		} else {
			System.out.println("<DIR> " + file.getName());
			String[] fileList = file.list();
			String pathName = file.getAbsolutePath();
			for (int i = 0; i < fileList.length; i++) {
				displayFiles(pathName + File.separator + fileList[i]);
			}
		}
	}
	
	/**
	 * Read a file by char
	 * @param filePath
	 */
	public void readFile(String filePath) {
		try {
			InputStream in = new FileInputStream(filePath);
			byte b; 
			while ((b = (byte)in.read()) != -1) {
				System.out.print((char)b);
			}
		} catch (Exception e) {
			System.out.println("error in read file");
			e.printStackTrace();
		}
	}
}
 
分享到:
评论

相关推荐

    Java软件开发中文件操作的研究与探析.pdf

    在文件操作中,顺序读写和随机读写是两种常见的读写方式。顺序读写是指从文件的开始位置逐步读取或写入数据,直到达到文件的结束位置。随机读写是指读写完上一个字节后,不仅能读写其后继的字节,还可以读写文件中的...

    java 操作文件工具类 java 操作文件工具类

    java 操作文件工具类java 操作文件工具类 java 操作文件工具类java 操作文件工具类java 操作文件工具类 java 操作文件工具类java 操作文件工具类java 操作文件工具类 java 操作文件工具类java 操作文件工具类java ...

    java文件操作类

    java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java...

    java视频教程—Java文件操作

    java视频教程 Java文件操作 JavaFile

    java实现对文件的各种操作的工具类.md

    # java实现对文件的各种操作的工具类 ## 可以实现的操作有: 1. 删除单个文件 2. 删除文件夹及文件夹下的文件 3. 使用文件流对单个文件进行复制 4. 复制整个文件夹内容(包含子文件夹中的所有内容) 5. ...

    java properties文件操作工具类,可追加修改

    此工具类只用于Java后端在操作Properties文件的时候写的工具类,方便properties文件的存取操作

    JAVA代码实现远程操作服务器文件

    Session是一个远程服务器文件操作的会话,可以实现文件的移动、复制、删除等操作。通过使用Session,可以实现远程服务器文件的操作。 6. 使用InputStream和BufferedReader实现命令执行结果的获取 InputStream和...

    java实现windows文件系统操作监控

    Java的`java.nio.file`包提供了丰富的文件操作接口,如`Files.setPosixFilePermissions()`和`Files.newFileChannel()`,可以用来设置权限和创建文件通道进行锁定。 7. **文件自动加密**:文件加密通常涉及对文件...

    Java 上传文件到 SharePoint

    首先,我们需要了解Java中用于文件操作的基本类,如`java.io.File`,它提供了创建、读取、写入和删除文件的方法。此外,为了与SharePoint交互,我们需要使用Microsoft提供的客户端对象模型(Client Object Model,...

    java 移动文件.

    Java 文件操作是 Java 编程语言中的一种基本操作,包括文件的移动、复制、删除、剪切等。下面是关于 Java 文件操作的知识点总结: 一、文件移动 文件移动是指将文件从一个目录下移到另一个目录下。在 Java 中,...

    java文件操作大全

    如何在Java中操作文件呢?转载供大家欣赏

    java操作mongodb存储文件实例

    将一系列图片文件存储到MongoDB中 java操作mongodb存储文件

    java文件操作工具类

    java文件操作工具类是java中针对文件操作的一个工具类,可以方便的读取,下载,上传文件等操作,希望可以帮到大家。

    java通过文件头内容判断文件类型

    在Java编程中,判断文件类型通常不是通过文件扩展名,而是通过读取文件的头部字节来识别。这是因为有些文件可能...理解并掌握这个方法,能够帮助我们在实际开发中更好地处理各种文件操作,提高程序的健壮性和安全性。

    Java中文件IO流.pdf

    Java 中文件 IO 流是指 Java 语言中对文件的输入输出操作,通过定义文件流来实现文件的读写操作。文件流是指在程序中用于文件输入输出的对象, Java 中提供了多种文件流类型,包括 InputStream 和 OutputStream 两大...

    Java文件操作封装类

    Java文件操作封装类

    java文件读写操作

    这个文件里面包含了java的IO流对文件的操作和java通道加内存映射对文件操作的源码

    Java写入大数据文件

    在写入和切分文件操作完成后,程序使用singleFileDataSort方法将每个小文件的数据进行排序,以便后续的数据处理操作。最后,程序使用deathDataFile方法对十个小文件的数据进行比较和整合,以提高数据的精度和可靠性...

    java 分割文件 将大文件分割成小文件

    总结起来,Java提供了丰富的API来处理文件操作,包括分割大文件。通过结合`FileInputStream`、`FileOutputStream`以及适当的逻辑,我们可以根据文件大小或时间间隔来分割大文件。在实际开发中,应根据具体需求调整...

    java操作文件工具类

    文件工具类java操作文件工具类java操作文件工具类java操作文件工具类java操作文件工具类

Global site tag (gtag.js) - Google Analytics