Java文件操作大全
本文内容纲要:
//1.创建文件夹
//importjava.io.*;
FilemyFolderPath=newFile(str1);
try{
if(!myFolderPath.exists()){
myFolderPath.mkdir();
}
}
catch(Exceptione){
System.out.println("新建目录操作出错");
e.printStackTrace();
}
//2.创建文件
//importjava.io.*;
FilemyFilePath=newFile(str1);
try{
if(!myFilePath.exists()){
myFilePath.createNewFile();
}
FileWriterresultFile=newFileWriter(myFilePath);
PrintWritermyFile=newPrintWriter(resultFile);
myFile.println(str2);
resultFile.close();
}
catch(Exceptione){
System.out.println("新建文件操作出错");
e.printStackTrace();
}
//3.删除文件
//importjava.io.*;
FilemyDelFile=newFile(str1);
try{
myDelFile.delete();
}
catch(Exceptione){
System.out.println("删除文件操作出错");
e.printStackTrace();
}
//4.删除文件夹
//importjava.io.*;
FiledelFolderPath=newFile(str1);
try{
delFolderPath.delete();//删除空文件夹
}
catch(Exceptione){
System.out.println("删除文件夹操作出错");
e.printStackTrace();
}
//5.删除一个文件下夹所有的文件夹
//importjava.io.*;
Filedelfile=newFile(str1);
File[]files=delfile.listFiles();
for(inti=0;i<files.length;i++){
if(files[i].isDirectory()){
files[i].delete();
}
}
//6.清空文件夹
//importjava.io.*;
Filedelfilefolder=newFile(str1);
try{
if(!delfilefolder.exists()){
delfilefolder.delete();
}
delfilefolder.mkdir();
}
catch(Exceptione){
System.out.println("清空目录操作出错");
e.printStackTrace();
}
//7.读取文件
//importjava.io.*;
//逐行读取数据
FileReaderfr=newFileReader(str1);
BufferedReaderbr=newBufferedReader(fr);
Stringstr2=br.readLine();
while(str2!=null){
str3
str2=br.readLine();
}
br.close();
fr.close();
//8.写入文件
//importjava.io.*;
//将数据写入文件
try{
FileWriterfw=newFileWriter(str1);
fw.write(str2);
fw.flush();
fw.close();
}catch(IOExceptione){
e.printStackTrace();
}
//9.写入随机文件
//importjava.io.*;
try{
RandomAcessFilelogFile=newRandomAcessFile(str1,"rw");
longlg=logFile.length();
logFile.seek(str2);
logFile.writeByte(str3);
}catch(IOExceptionioe){
System.out.println("无法写入文件:"+ioe.getMessage());
}
//10.读取文件属性
//importjava.io.*;
//文件属性的取得
Filef=newFile(str1);
if(af.exists()){
System.out.println(f.getName()+"的属性如下:文件长度为:"+f.length());
System.out.println(f.isFile()?"是文件":"不是文件");
System.out.println(f.isDirectory()?"是目录":"不是目录");
System.out.println(f.canRead()?"可读取":"不");
System.out.println(f.canWrite()?"是隐藏文件":"");
System.out.println("文件夹的最后修改日期为:"+newDate(f.lastModified()));
}else{
System.out.println(f.getName()+"的属性如下:");
System.out.println(f.isFile()?"是文件":"不是文件");
System.out.println(f.isDirectory()?"是目录":"不是目录");
System.out.println(f.canRead()?"可读取":"不");
System.out.println(f.canWrite()?"是隐藏文件":"");
System.out.println("文件的最后修改日期为:"+newDate(f.lastModified()));
}
if(f.canRead()){
str2
}
if(f.canWrite()){
str3
}
//11.写入属性
//importjava.io.*;
Filefilereadonly=newFile(str1);
try{
booleanb=filereadonly.setReadOnly();
}
catch(Exceptione){
System.out.println("拒绝写访问:"+e.printStackTrace());
}
//12.枚举一个文件夹中的所有文件
//importjava.io.*;
//importjava.util.*;
LinkedList<String>folderList=newLinkedList<String>();
folderList.add(str1);
while(folderList.size()>0){
Filefile=newFile(folderList.peek());
folderList.removeLast();
File[]files=file.listFiles();
ArrayList<File>fileList=newArrayList<File>();
for(inti=0;i<files.length;i++){
if(files[i].isDirectory()){
folderList.add(files[i].getPath());
}else{
fileList.add(files[i]);
}
}
for(Filef:fileList){
str2=f.getAbsoluteFile();
str3
}
}
//13.复制文件夹
//importjava.io.*;
//importjava.util.*;
LinkedList<String>folderList=newLinkedList<String>();
folderList.add(str1);
LinkedList<String>folderList2=newLinkedList<String>();
folderList2.add(str2+str1.substring(str1.lastIndexOf("\\")));
while(folderList.size()>0){
(newFile(folderList2.peek())).mkdirs();//如果文件夹不存在则建立新文件夹
Filefolders=newFile(folderList.peek());
String[]file=folders.list();
Filetemp=null;
try{
for(inti=0;i<file.length;i++){
if(folderList.peek().endsWith(File.separator)){
temp=newFile(folderList.peek()+File.separator
+file[i]);
}else{
temp=newFile(folderList.peek()+File.separator+file[i]);
}
if(temp.isFile()){
FileInputStreaminput=newFileInputStream(temp);
FileOutputStreamoutput=newFileOutputStream(
folderList2.peek()+File.separator+(temp.getName()).toString());
byte[]b=newbyte[5120];
intlen;
while((len=input.read(b))!=-1){
output.write(b,0,len);
}
output.flush();
output.close();
input.close();
}
if(temp.isDirectory()){//如果是子文件夹
for(Filef:temp.listFiles()){
if(f.isDirectory()){
folderList.add(f.getPath());
folderList2.add(folderList2.peek()
+File.separator+f.getName());
}
}
}
}
}catch(Exceptione){
//System.out.println("复制整个文件夹内容操作出错");
e.printStackTrace();
}
folderList.removeFirst();
folderList2.removeFirst();
}
//14.复制一个文件夹下所有的文件夹到另一个文件夹下
//importjava.io.*;
//importjava.util.*;
Filecopyfolders=newFile(str1);
File[]copyfoldersList=copyfolders.listFiles();
for(intk=0;k<copyfoldersList.length;k++){
if(copyfoldersList[k].isDirectory()){
ArrayList<String>folderList=newArrayList<String>();
folderList.add(copyfoldersList[k].getPath());
ArrayList<String>folderList2=newArrayList<String>();
folderList2.add(str2+"/"+copyfoldersList[k].getName());
for(intj=0;j<folderList.length;j++){
(newFile(folderList2.get(j))).mkdirs();//如果文件夹不存在则建立新文件夹
Filefolders=newFile(folderList.get(j));
String[]file=folders.list();
Filetemp=null;
try{
for(inti=0;i<file.length;i++){
if(folderList.get(j).endsWith(File.separator)){
temp=newFile(folderList.get(j)+"/"+file[i]);
}else{
temp=newFile(folderList.get(j)+"/"+File.separator+file[i]);
}
FileInputStreaminput=newFileInputStream(temp);
if(temp.isFile()){
FileInputStreaminput=newFileInputStream(temp);
FileOutputStreamoutput=newFileOutputStream(folderList2.get(j)+"/"+(temp.getName()).toString());
byte[]b=newbyte[5120];
intlen;
while((len=input.read(b))!=-1){
output.write(b,0,len);
}
output.flush();
output.close();
input.close();
}
if(temp.isDirectory()){//如果是子文件夹
folderList.add(folderList.get(j)+"/"+file[i]);
folderList2.add(folderList2.get(j)+"/"+file[i]);
}
}
}
catch(Exceptione){
System.out.println("复制整个文件夹内容操作出错");
e.printStackTrace();
}
}
}
}
//15.移动文件夹
//importjava.io.*;
//importjava.util.*;
LinkedList<String>folderList=newLinkedList<String>();
folderList.add(str1);
LinkedList<String>folderList2=newLinkedList<String>();
folderList2.add(str2+str1.substring(str1.lastIndexOf("\\")));
while(folderList.size()>0){
(newFile(folderList2.peek())).mkdirs();//如果文件夹不存在则建立新文件夹
Filefolders=newFile(folderList.peek());
String[]file=folders.list();
Filetemp=null;
try{
for(inti=0;i<file.length;i++){
if(folderList.peek().endsWith(File.separator)){
temp=newFile(folderList.peek()+File.separator+file[i]);
}else{
temp=newFile(folderList.peek()+File.separator+file[i]);
}
if(temp.isFile()){
FileInputStreaminput=newFileInputStream(temp);
FileOutputStreamoutput=newFileOutputStream(
folderList2.peek()+File.separator+(temp.getName()).toString());
byte[]b=newbyte[5120];
intlen;
while((len=input.read(b))!=-1){
output.write(b,0,len);
}
output.flush();
output.close();
input.close();
if(!temp.delete())
System.out.println("删除单个文件操作出错!");
}
if(temp.isDirectory()){//如果是子文件夹
for(Filef:temp.listFiles()){
if(f.isDirectory()){
folderList.add(f.getPath());
folderList2.add(folderList2.peek()+File.separator+f.getName());
}
}
}
}
}catch(Exceptione){
//System.out.println("复制整个文件夹内容操作出错");
e.printStackTrace();
}
folderList.removeFirst();
folderList2.removeFirst();
}
Filef=newFile(str1);
if(!f.delete()){
for(Filefile:f.listFiles()){
if(file.list().length==0){
System.out.println(file.getPath());
file.delete();
}
}
}
//16.移动一个文件夹下所有的文件夹到另一个目录下
//importjava.io.*;
//importjava.util.*;
Filemovefolders=newFile(str1);
File[]movefoldersList=movefolders.listFiles();
for(intk=0;k<movefoldersList.length;k++){
if(movefoldersList[k].isDirectory()){
ArrayList<String>folderList=newArrayList<String>();
folderList.add(movefoldersList[k].getPath());
ArrayList<String>folderList2=newArrayList<String>();
folderList2.add(str2+"/"+movefoldersList[k].getName());
for(intj=0;j<folderList.length;j++){
(newFile(folderList2.get(j))).mkdirs();//如果文件夹不存在则建立新文件夹
Filefolders=newFile(folderList.get(j));
String[]file=folders.list();
Filetemp=null;
try{
for(inti=0;i<file.length;i++){
if(folderList.get(j).endsWith(File.separator)){
temp=newFile(folderList.get(j)+"/"+file[i]);
}
else{
temp=newFile(folderList.get(j)+"/"+File.separator+file[i]);
}
FileInputStreaminput=newFileInputStream(temp);
if(temp.isFile()){
FileInputStreaminput=newFileInputStream(temp);
FileOutputStreamoutput=newFileOutputStream(folderList2.get(j)+"/"+(temp.getName()).toString());
byte[]b=newbyte[5120];
intlen;
while((len=input.read(b))!=-1){
output.write(b,0,len);
}
output.flush();
output.close();
input.close();
temp.delete();
}
if(temp.isDirectory()){//如果是子文件夹
folderList.add(folderList.get(j)+"/"+file[i]);
folderList2.add(folderList2.get(j)+"/"+file[i]);
}
}
}
catch(Exceptione){
System.out.println("复制整个文件夹内容操作出错");
e.printStackTrace();
}
}
movefoldersList[k].delete();
}
}
//17.以一个文件夹的框架在另一个目录创建文件夹和空文件
//importjava.io.*;
//importjava.util.*;
booleanb=false;//不创建空文件
ArrayList<String>folderList=newArrayList<String>();
folderList.add(str1);
ArrayList<String>folderList2=newArrayList<String>();
folderList2.add(str2);
for(intj=0;j<folderList.length;j++){
(newFile(folderList2.get(j))).mkdirs();//如果文件夹不存在则建立新文件夹
Filefolders=newFile(folderList.get(j));
String[]file=folders.list();
Filetemp=null;
try{
for(inti=0;i<file.length;i++){
if(folderList.get(j).endsWith(File.separator)){
temp=newFile(folderList.get(j)+"/"+file[i]);
}
else{
temp=newFile(folderList.get(j)+"/"+File.separator+file[i]);
}
FileInputStreaminput=newFileInputStream(temp);
if(temp.isFile()){
if(b)temp.createNewFile();
}
if(temp.isDirectory()){//如果是子文件夹
folderList.add(folderList.get(j)+"/"+file[i]);
folderList2.add(folderList2.get(j)+"/"+file[i]);
}
}
}
catch(Exceptione){
System.out.println("复制整个文件夹内容操作出错");
e.printStackTrace();
}
}
//18.复制文件
//importjava.io.*;
intbytesum=0;
intbyteread=0;
Fileoldfile=newFile(str1);
try{
if(oldfile.exists()){//文件存在时
FileInputStreaminStream=newFileInputStream(oldfile);//读入原文件
FileOutputStreamfs=newFileOutputStream(newFile(str2,oldfile.getName()));
byte[]buffer=newbyte[5120];
intlength;
while((byteread=inStream.read(buffer))!=-1){
bytesum+=byteread;//字节数文件大小
System.out.println(bytesum);
fs.write(buffer,0,byteread);
}
inStream.close();
}
}
catch(Exceptione){
System.out.println("复制单个文件操作出错");
e.printStackTrace();
}
//19.复制一个文件夹下所有的文件到另一个目录
//importjava.io.*;
Filecopyfiles=newFile(str1);
File[]files=copyfiles.listFiles();
for(inti=0;i<files.length;i++){
if(!files[i].isDirectory()){
intbytesum=0;
intbyteread=0;
try{
InputStreaminStream=newFileInputStream(files[i]);//读入原文件
FileOutputStreamfs=newFileOutputStream(newFile(str2,files[i].getName());
byte[]buffer=newbyte[5120];
intlength;
while((byteread=inStream.read(buffer))!=-1){
bytesum+=byteread;//字节数文件大小
System.out.println(bytesum);
fs.write(buffer,0,byteread);
}
inStream.close();
}catch(Exceptione){
System.out.println("复制单个文件操作出错");
e.printStackTrace();
}
}
}
//提取扩展名
Stringstr2=str1.substring(str1.lastIndexOf(".")+1);
本文内容总结:
原文链接:https://www.cnblogs.com/JonaLin/p/11016622.html