`

java常用操作方法(二)文件操作类 FileUtil

    博客分类:
  • java
阅读更多
package com.jinqiao.util;

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.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

public class FileUtil {
/**
* 创建文件夹
*
* @param path
*            目录
*/
public void createDir(String path) {
File dir = new File(path);
if (!dir.exists()) {
dir.mkdir();
System.out.println("创建文件夹成功!");
}
}

/**
* 递归删除文件夹 要利用File类的delete()方法删除目录时, 必须保证该目录下没有文件或者子目录,否则删除失败,
* 因此在实际应用中,我们要删除目录, 必须利用递归删除该目录下的所有子目录和文件, 然后再删除该目录。
*
* @param path
*/
public void delDir(String path) {
File dir = new File(path);
if (dir.exists()) {
File[] tmp = dir.listFiles();
for (int i = 0; i < tmp.length; i++) {
if (tmp[i].isDirectory()) {
delDir(path + "/" + tmp[i].getName());
} else {
tmp[i].delete();
}
}
dir.delete();
}
}

/*
* 转移文件目录不等同于复制文件,复制文件是复制后两个目录都存在该文件, 而转移文件目录则是转移后,只有新目录中存在该文件
*/
/**
* 转移文件目录
*
* @param filename
*            文件名
* @param oldpath
*            旧目录
* @param newpath
*            新目录
* @param cover
*            若新目录下存在和转移文件具有相同文件名的文件时,是否覆盖新目录下文件, cover=true将会覆盖原文件,否则不操作
*/
public void changeDirectory(String filename, String oldpath,
String newpath, boolean cover) {
if (!oldpath.equals(newpath)) {
File oldfile = new File(oldpath + "/" + filename);
File newfile = new File(newpath + "/" + filename);
if (newfile.exists()) {// 若在待转移目录下,已经存在待转移文件
if (cover)// 覆盖
oldfile.renameTo(newfile);
else
System.out.println("在新目录下已经存在:" + filename);
} else {
oldfile.renameTo(newfile);
}
}
}

/**
* 创建新文件
*
* @param path
*            目录
* @param filename
*            文件名
* @throws IOException
*/
public void createFile(String path, String filename) throws IOException {
File file = new File(path + "/" + filename);
if (!file.exists()) {
file.createNewFile();
System.out.println("创建文件成功!");
}
}

/*
* 利用BufferedWriter写入文件内容
*
* 利用Buffer操作IO速度会稍微快一点
*/
public void writeFile(String filename) {
File file = new File(filename);
try {
if (!file.exists())
file.createNewFile();
FileWriter fw = new FileWriter(file, true);// 传入true表示如果该文件存在,则将新内容添加到文件末尾
BufferedWriter bw = new BufferedWriter(fw);
for (int i = 0; i < 10; i++)
bw.write("这是第" + (i + 1) + "行,应该没错哈 ");
// 关闭
bw.close();
bw = null;
fw.close();
fw = null;
} catch (IOException e) {
e.printStackTrace();
}
}

/**
* 读文件 利用BufferedReader读取在IO操作,利用BufferedReader和BufferedWriter效率会更高一点
*
* @param path
* @return
* @throws IOException
*/
public String ReadFile(String path) throws IOException {
File file = new File(path);
if (!file.exists() || file.isDirectory())
throw new FileNotFoundException();
BufferedReader br = new BufferedReader(new FileReader(file));
String temp = null;
StringBuffer sb = new StringBuffer();
temp = br.readLine();
while (temp != null) {
sb.append(temp + " ");
temp = br.readLine();
}
return sb.toString();
}

/**
* 文件重命名--如果重命名的目标文件已经存在,则不会进行任何操作
*
* @param path
*            文件目录
* @param oldname
*            原来的文件名
* @param newname
*            新文件名
*/
public void renameFile(String path, String oldname, String newname) {
if (!oldname.equals(newname)) {// 新的文件名和以前文件名不同时,才有必要进行重命名
File oldfile = new File(path + "/" + oldname);
File newfile = new File(path + "/" + newname);
if (newfile.exists())// 若在该目录下已经有一个文件和新文件名相同,则不允许重命名
System.out.println(newname + "已经存在!");
else {
oldfile.renameTo(newfile);
}
}
}

/**
* 以文件流的方式复制文件 支持中文处理,并且可以复制多种类型,比如txt,xml,jpg,doc等多种格式
*
* @param src
*            文件源目录
* @param dest
*            文件目的目录
* @throws IOException
*/
public void copyFile(String src, String dest) throws IOException {
FileInputStream in = new FileInputStream(src);
File file = new File(dest);
if (!file.exists())
file.createNewFile();
FileOutputStream out = new FileOutputStream(file);
int c;
byte buffer[] = new byte[1024];
while ((c = in.read(buffer)) != -1) {
for (int i = 0; i < c; i++)
out.write(buffer[i]);
}
System.out.println("文件拷贝完毕!");
in.close();
out.close();
}

/**
* 删除文件
*
* @param path
*            目录
* @param filename
*            文件名
*/
public void delFile(String path, String filename) {
File file = new File(path + "/" + filename);
if (file.exists() && file.isFile())
file.delete();
}


public String readSysFile(String path,String charsetName1,String charsetName2){
BufferedReader br = null;
StringBuffer sb = new StringBuffer();
String str = "";
try {
    InputStream is = new FileInputStream(FileUtil.class.getResource(path).toString().substring(6));
br = new BufferedReader(new InputStreamReader(is));
String temp = null;
temp = br.readLine();
while (temp != null) {
sb.append(temp + "\n");
temp = br.readLine();
}
str = sb.toString();
//System.out.println(sb.toString());
if(charsetName1!=null && charsetName2!=null && charsetName1.trim().length()>0 && charsetName1.trim().length()>0){
//str = new String(str.getBytes("GBK"),"UTF-8");
str = new String(str.getBytes(charsetName1.trim()),charsetName2.trim());
}
is.close();
br.close();
sb.setLength(0);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return str;
}
public static void main(String[] arg){

String str;
try {
str = FileUtil.class.newInstance().readSysFile("/com/jinqiao/tag/file/orgLinkage.pro","","");
System.out.println(str);
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}



}
}
分享到:
评论

相关推荐

    基于JAVA的常用文件操作方法

    在提供的`FileUtil.java`文件中,可能包含了上述某些或全部的文件操作方法,具体实现需要查看源码才能得知。对于实际项目开发,编写一个`FileUtil`工具类是非常常见的做法,这样可以将文件操作封装起来,便于代码的...

    FileUtil类文件整理

    测试类`TestClass.java`通常会包含一系列测试用例,确保`FileUtil`类的每个方法都能正确执行其预期的功能,例如通过JUnit或TestNG框架编写单元测试,测试文件的创建、读取、写入、删除等操作,并验证结果的正确性。...

    FileUtil(文件操作工具类)

    `FileUtil.java`源码中,这些方法通常会使用Java的`java.io`包提供的基本文件操作类,如`File`, `FileInputStream`, `FileOutputStream`, `BufferedReader`, `BufferedWriter`等。通过封装这些基本操作,`FileUtil`...

    一个常用的Java文件操作类FileUtil.java源码下载

    一个常用的Java文件操作类FileUtil.java源代码,类中的所有方法都是静态方法,不需要生成此类的实例,这些Java文件操作类主要有修改文件的最后访问时间、判断指定的文件是否存在、创建指定的目录、清空指定目录中的...

    java 文件操作类

    3. **文件操作方法** - `createNewFile()`:创建一个新的空文件。如果文件已存在,此方法将返回`false`。 - `delete()`:删除文件或目录。如果目标是目录,它必须为空才能删除。 - `mkdir()`:创建单级目录。注意...

    java File文件处理工具类

    这个类通常是为了提供更方便的文件操作方法,比如上述的复制、删除等。这些方法可能是静态的,可以直接通过类名调用,如`FileUtils.copyDirectory()`。 总的来说,Java的`File`类提供了丰富的文件和目录操作接口,...

    Java文件操作工具类fileUtil实例【文件增删改,复制等】

    Java文件操作工具类fileUtil实例是一个提供了多种文件操作方法的工具类,包括文件读取、增加、删除、修改、复制等操作。该工具类可以帮助开发者快速实现文件操作功能,提高开发效率。 1. 读取文件内容 FileUtil类...

    FileUtil

    "FileUtil"是一个Java工具类库,用于处理与文件操作相关的任务。在Java开发中,文件操作是一项常见的任务,例如读取、写入、移动、复制文件等。FileUtil类通常封装了这些基本操作,提供了更简洁、易用的API,以减少...

    java常用util工具类

    接着,`FileUtil`工具类主要用于文件和目录的操作,如读取、写入、创建、删除、复制等。例如,`readFileToString()`可以将整个文件内容读取为一个字符串,`writeStringToFile()`则可以将字符串写入到文件。此外,`...

    Java常用工具类UtilClass

    在Java编程中,工具类(Util Class)是包含各种实用函数的静态类,它们提供了一种简化常见任务的方法。在给定的`UtilClass`中,我们有五个主要的工具类:`StringUtil`、`FileUtil`、`ConnectDB`、`DateUtil`和`...

    java常用工具类

    本篇将详细讲解标题为"java常用工具类"的几个关键组件,如JSONUtil、StringUtil、FileUtil等,并深入探讨它们的功能和使用场景。 首先,JSONUtil是处理JSON(JavaScript Object Notation)数据的工具类。JSON是一种...

    java中常用操作

    在博文链接中提到的"FileUtil4.txt"可能是一个工具类,用于处理文件操作。FileUtil通常包含了读取、写入、复制、移动、删除文件等实用方法。例如,它可能封装了`java.io.File`、`java.nio`等类的操作,提供更简洁的...

    Base64Util、FileUtil、GsonUtils、HttpUtil

    FileUtil工具类主要处理文件和目录的操作,简化了Java的I/O操作。它可能包含如读取文件内容、写入文件、创建或删除文件/目录等方法。例如,`readFileToString`可以用来读取整个文件并返回一个字符串,而`...

    值得分享的超全文件工具类FileUtil

    文件工具类FileUtil是一个专门为Android开发提供帮助的实用类,它能够简化对文件的操作,使得开发者能更专注于业务逻辑,而不必重复编写文件操作的代码。下面详细介绍FileUtil中包含的一些关键功能点: 1. 读取raw...

    FileUtil.java

    该工具类专门转对于Java中的数据文件的移动,复制,拷贝等方法,为开发者提供一系列的便捷的操作方法!极大的方便开发者开发!!

    java常用工具类封装util.rar

    8. **文件操作工具类(FileUtil)**:提供文件的创建、删除、移动、复制等操作,简化文件操作。例如`createFileIfNotExists()`用于创建文件(如果文件不存在),`deleteFile()`用于删除文件。 9. **网络工具类...

    一个写文件的java类

    总结,这个Java项目提供了一个工具类FileUtil,用于简化文件操作,如写入文件。TestSettings类则确保FileUtil的功能在不同情况下都能正确工作。学习和理解这些代码可以帮助提升Java开发中的文件操作能力。

    分享28个java常用的工具类源码打包下载

    4. **文件操作**:`FileUtil.java`提供了对文件的基本操作,如创建、读取、写入、删除、复制、移动等,这些方法是文件系统交互的核心。 5. **MD5加密**:`Md5.java`包含MD5哈希函数,MD5是一种广泛用于密码存储和...

    java操作fastdfs来上传文件的代码

    本篇文章将详细讲解如何通过Java操作FastDFS来上传文件,并封装成一个工具类。 首先,你需要在项目中引入FastDFS的Java客户端库,通常可以通过Maven或Gradle来添加依赖。在Maven的pom.xml文件中,可以添加如下依赖...

Global site tag (gtag.js) - Google Analytics