zoukankan
html css js c++ java
java 文件 目录和文件的新建、删除、复制、剪切
package
com;
import
java.io.File;
import
java.io.FileInputStream;
import
java.io.FileOutputStream;
import
java.io.FileWriter;
import
java.io.InputStream;
import
java.io.PrintWriter;
public
class
CopyFile
{
public
CopyFile()
{
}
/** */
/**
* 新建目录
*
@param
folderPath String 如 c:/fqf
*
@return
boolean
*/
public
void
newFolder(String folderPath)
{
try
{
String filePath
=
folderPath;
filePath
=
filePath.toString();
java.io.File myFilePath
=
new
java.io.File(filePath);
if
(
!
myFilePath.exists())
{
myFilePath.mkdir();
}
}
catch
(Exception e)
{
System.out.println(
"
新建目录操作出错
"
);
e.printStackTrace();
}
}
/** */
/**
* 新建文件
*
@param
filePathAndName String 文件路径及名称 如c:/fqf.txt
*
@param
fileContent String 文件内容
*
@return
boolean
*/
public
void
newFile(String filePathAndName, String fileContent)
{
try
{
String filePath
=
filePathAndName;
filePath
=
filePath.toString();
File myFilePath
=
new
File(filePath);
if
(
!
myFilePath.exists())
{
myFilePath.createNewFile();
}
FileWriter resultFile
=
new
FileWriter(myFilePath);
PrintWriter myFile
=
new
PrintWriter(resultFile);
String strContent
=
fileContent;
myFile.println(strContent);
resultFile.close();
}
catch
(Exception e)
{
System.out.println(
"
新建文件操作出错
"
);
e.printStackTrace();
}
}
/** */
/**
* 删除文件
*
@param
filePathAndName String 文件路径及名称 如c:/fqf.txt
*
@param
fileContent String
*
@return
boolean
*/
public
void
delFile(String filePathAndName)
{
try
{
String filePath
=
filePathAndName;
filePath
=
filePath.toString();
java.io.File myDelFile
=
new
java.io.File(filePath);
myDelFile.delete();
}
catch
(Exception e)
{
System.out.println(
"
删除文件操作出错
"
);
e.printStackTrace();
}
}
/** */
/**
* 删除文件夹
*
@param
filePathAndName String 文件夹路径及名称 如c:/fqf
*
@param
fileContent String
*
@return
boolean
*/
public
void
delFolder(String folderPath)
{
try
{
delAllFile(folderPath);
//
删除完里面所有内容
String filePath
=
folderPath;
filePath
=
filePath.toString();
java.io.File myFilePath
=
new
java.io.File(filePath);
myFilePath.delete();
//
删除空文件夹
}
catch
(Exception e)
{
System.out.println(
"
删除文件夹操作出错
"
);
e.printStackTrace();
}
}
/** */
/**
* 删除文件夹里面的所有文件
*
@param
path String 文件夹路径 如 c:/fqf
*/
public
void
delAllFile(String path)
{
File file
=
new
File(path);
if
(
!
file.exists())
{
return
;
}
if
(
!
file.isDirectory())
{
return
;
}
String[] tempList
=
file.list();
File temp
=
null
;
for
(
int
i
=
0
; i
<
tempList.length; i
++
)
{
if
(path.endsWith(File.separator))
{
temp
=
new
File(path
+
tempList[i]);
}
else
{
temp
=
new
File(path
+
File.separator
+
tempList[i]);
}
if
(temp.isFile())
{
temp.delete();
}
if
(temp.isDirectory())
{
delAllFile(path
+
"
/
"
+
tempList[i]);
//
先删除文件夹里面的文件
delFolder(path
+
"
/
"
+
tempList[i]);
//
再删除空文件夹
}
}
}
/** */
/**
* 复制单个文件
*
@param
oldPath String 原文件路径 如:c:/fqf.txt
*
@param
newPath String 复制后路径 如:f:/fqf.txt
*
@return
boolean
*/
public
void
copyFile(String oldPath, String newPath)
{
try
{
int
bytesum
=
0
;
int
byteread
=
0
;
File oldfile
=
new
File(oldPath);
if
(oldfile.exists())
{
//
文件存在时
InputStream inStream
=
new
FileInputStream(oldPath);
//
读入原文件
FileOutputStream fs
=
new
FileOutputStream(newPath);
byte
[] buffer
=
new
byte
[
1444
];
int
length;
while
( (byteread
=
inStream.read(buffer))
!=
-
1
)
{
bytesum
+=
byteread;
//
字节数 文件大小
System.out.println(bytesum);
fs.write(buffer,
0
, byteread);
}
inStream.close();
}
}
catch
(Exception e)
{
System.out.println(
"
复制单个文件操作出错
"
);
e.printStackTrace();
}
}
/** */
/**
* 复制整个文件夹内容
*
@param
oldPath String 原文件路径 如:c:/fqf
*
@param
newPath String 复制后路径 如:f:/fqf/ff
*
@return
boolean
*/
public
void
copyFolder(String oldPath, String newPath)
{
try
{
(
new
File(newPath)).mkdirs();
//
如果文件夹不存在 则建立新文件夹
File a
=
new
File(oldPath);
String[] file
=
a.list();
File temp
=
null
;
for
(
int
i
=
0
; i
<
file.length; i
++
)
{
if
(oldPath.endsWith(File.separator))
{
temp
=
new
File(oldPath
+
file[i]);
}
else
{
temp
=
new
File(oldPath
+
File.separator
+
file[i]);
}
if
(temp.isFile())
{
FileInputStream input
=
new
FileInputStream(temp);
FileOutputStream output
=
new
FileOutputStream(newPath
+
"
/
"
+
(temp.getName()).toString());
byte
[] b
=
new
byte
[
1024
*
5
];
int
len;
while
( (len
=
input.read(b))
!=
-
1
)
{
output.write(b,
0
, len);
}
output.flush();
output.close();
input.close();
}
if
(temp.isDirectory())
{
//
如果是子文件夹
copyFolder(oldPath
+
"
/
"
+
file[i],newPath
+
"
/
"
+
file[i]);
}
}
}
catch
(Exception e)
{
System.out.println(
"
复制整个文件夹内容操作出错
"
);
e.printStackTrace();
}
}
/** */
/**
* 移动文件到指定目录
*
@param
oldPath String 如:c:/fqf.txt
*
@param
newPath String 如:d:/fqf.txt
*/
public
void
moveFile(String oldPath, String newPath)
{
copyFile(oldPath, newPath);
delFile(oldPath);
}
/** */
/**
* 移动文件到指定目录
*
@param
oldPath String 如:c:/fqf.txt
*
@param
newPath String 如:d:/fqf.txt
*/
public
void
moveFolder(String oldPath, String newPath)
{
copyFolder(oldPath, newPath);
delFolder(oldPath);
}
public
static
void
main(String[] args)
{
CopyFile file
=
new
CopyFile();
//
file.newFolder("newFolder22222");
file.newFile(
"
test.txt
"
,
"
fdsfdsfdsfs
"
);
}
//
拷贝文件
private
void
copyFile2(String source, String dest)
{
try
{
File in
=
new
File(source);
File out
=
new
File(dest);
FileInputStream inFile
=
new
FileInputStream(in);
FileOutputStream outFile
=
new
FileOutputStream(out);
byte
[] buffer
=
new
byte
[
1024
];
int
i
=
0
;
while
((i
=
inFile.read(buffer))
!=
-
1
)
{
outFile.write(buffer,
0
, i);
}
//
end while
inFile.close();
outFile.close();
}
//
end try
catch
(Exception e)
{
}
//
end catch
}
//
end copyFile
}
查看全文
相关阅读:
链接被点击时不出现虚线框的方法
label 和 legend标签的用法
了解常见的浏览器内核 Trident,Geckos,Presto,Webkit
DOCTYPE声明的几种类型
Angularjs基础教程
理解angular中的module和injector,即依赖注入
es5 api
css3_note
canvas 基础知识
uglifyjs note
原文地址:https://www.cnblogs.com/pricks/p/1601159.html
最新文章
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)
python对 windows系统监控插件
Django权限系统auth模块详解
Django中authenticate和login模块
django中同通过getlist() 接收页面form的post数组
Django 引用{% url "name"%} 避免链接硬编码
pip 使用国内源安装第三方库
Python动态构造类:借助强悍的内建 type()
Django站点管理--ModelAdmin
Django中的QuerySet查询优化之实例篇
热门文章
Django中的QuerySet查询优化之prefetch_related
getopenfilename多选文件/文件夹问题和getsavefilename另存为路径
关于子窗口的透明问题
使用createprocess()创建进程打开其他文件方法
vc 使用ShellExecut来启动控制面板中功能模块的操作
关于VC中的附加进程调试
关于vc工程包含多个lib库老是提示无法打开问题
LINK : warning LNK4098: 默认库“LIBCMT”与其他库的使用冲突;请使用 /NODEFAULTLIB:library
c语言中的内存分配malloc、alloca、calloc、malloc、free、realloc、sbr
Vim学习笔记
Copyright © 2011-2022 走看看