她应该可以满足你日常文件的基本功能啦!写文件,读文件,复制文件,复制文件夹等。
希望是你想要的.
import java.io.File
import java.io.FileInputStream
import java.io.FileNotFoundException
import java.io.FileOutputStream
import java.io.IOException
import java.io.InputStream
/**
*
* <p>
* Title: 文件处理工具类
* </p>
* <p>
* Description:实现文件的简单处理,复制文件、目录等
* </p>
* <p>
* Copyright: Copyright (c) 2005
* </p>
* <p>
* Company: www.easyjf.com
* </p>
*
* @author 天一
* @version 1.0
*/
public class FileUtil {
/**
* 复制目录下的文件(不包括该目录)到指定目录,会连同子目录一起复制过去。
*
* @param targetFile
* @param path
*/
public static void copyFileFromDir(String targetDir, String path) {
File file = new File(path)
createFile(targetDir, false)
if (file.isDirectory()) {
copyFileToDir(targetDir, listFile(file))
}
}
/**
* 复制目录下的文件(不包含该目录和子目录,只复制目录下的文件)到指定目录。
*
* @param targetDir
* @param path
*/
public static void copyFileOnly(String targetDir, String path) {
File file = new File(path)
File targetFile = new File(targetDir)
if (file.isDirectory()) {
File[] files = file.listFiles()
for (File subFile : files) {
if (subFile.isFile()) {
copyFile(targetFile, subFile)
}
}
}
}
/**
* 复制目录到指定目录。targetDir是目标目录,path是源目录。
* 该方法会将path以及path下的文件和子目录全部复制到目标目录
*
* @param targetDir
* @param path
*/
public static void copyDir(String targetDir, String path) {
File targetFile = new File(targetDir)
createFile(targetFile, false)
File file = new File(path)
if (targetFile.isDirectory() &&file.isDirectory()) {
copyFileToDir(targetFile.getAbsolutePath() + "/" + file.getName(),
listFile(file))
}
}
/**
* 复制一组文件到指定目录。targetDir是目标目录,filePath是需要复制的文件路径
*
* @param targetDir
* @param filePath
*/
public static void copyFileToDir(String targetDir, String... filePath) {
if (targetDir == null || "".equals(targetDir)) {
System.out.println("参数错误,目标路径不能为空")
return
}
File targetFile = new File(targetDir)
if (!targetFile.exists()) {
targetFile.mkdir()
} else {
if (!targetFile.isDirectory()) {
System.out.println("参数错误,目标路径指向的不是一个目录!")
return
}
}
for (String path : filePath) {
File file = new File(path)
if (file.isDirectory()) {
copyFileToDir(targetDir + "/" + file.getName(), listFile(file))
} else {
copyFileToDir(targetDir, file, "")
}
}
}
/**
* 复制文件到指定目录。targetDir是目标目录,file是源文件名,newName是重命名的名字。
*
* @param targetFile
* @param file
* @param newName
*/
public static void copyFileToDir(String targetDir, File file, String newName) {
String newFile = ""
if (newName != null &&!"".equals(newName)) {
newFile = targetDir + "/" + newName
} else {
newFile = targetDir + "/" + file.getName()
}
File tFile = new File(newFile)
copyFile(tFile, file)
}
/**
* 复制文件。targetFile为目标文件,file为源文件
*
* @param targetFile
* @param file
*/
public static void copyFile(File targetFile, File file) {
if (targetFile.exists()) {
System.out.println("文件" + targetFile.getAbsolutePath() + "已经存在,跳过该文件!")
return
} else {
createFile(targetFile, true)
}
System.out.println("复制文件" + file.getAbsolutePath() + "到" + targetFile.getAbsolutePath())
try {
InputStream is = new FileInputStream(file)
FileOutputStream fos = new FileOutputStream(targetFile)
byte[] buffer = new byte[1024]
while (is.read(buffer) != -1) {
fos.write(buffer)
}
is.close()
fos.close()
} catch (FileNotFoundException e) {
e.printStackTrace()
} catch (IOException e) {
e.printStackTrace()
}
}
public static String[] listFile(File dir) {
String absolutPath = dir.getAbsolutePath()
String[] paths = dir.list()
String[] files = new String[paths.length]
for (int i = 0i <paths.lengthi++) {
files[i] = absolutPath + "/" + paths[i]
}
return files
}
public static void createFile(String path, boolean isFile) {
createFile(new File(path), isFile)
}
public static void createFile(File file, boolean isFile) {
if (!file.exists()) {
if (!file.getParentFile().exists()) {
createFile(file.getParentFile(), false)
} else {
if (isFile) {
try {
file.createNewFile()
} catch (IOException e) {
e.printStackTrace()
}
} else {
file.mkdir()
}
}
}
}
}
import java.io.FileNotFoundExceptionimport java.io.FileOutputStream
import java.io.IOException
import java.io.OutputStream
import java.io.OutputStreamWriter
import java.io.PrintWriter
public class CreateFile {
public static void main(String[] args) {
String str = "需要写入的字"
String fileName = "D:\\a\\a.xml"
OutputStream output = null// 输出字节流
OutputStreamWriter outputWrite = null// 输出字符流
PrintWriter print = null// 输出缓冲区
try {
output = new FileOutputStream(fileName)
outputWrite = new OutputStreamWriter(output)
print = new PrintWriter(outputWrite)
print.print(str)
print.flush()// 一定不要忘记此句,否则数据有可能不能被写入文件
output.close()
} catch (FileNotFoundException e) {
e.printStackTrace()
} catch (IOException e) {
e.printStackTrace()
}
}
}
再一个问题就是只要你编码正确就可以正常打开。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)