File文件操作
-
//1.创建文件夹
-
//import java.io.*;
-
File myFolderPath = new File(str1);
-
try {
-
if (!myFolderPath.exists()) {
-
myFolderPath.mkdir();
-
}
-
}
-
catch (Exception e) {
-
System.out.println("新建目录操作出错");
-
e.printStackTrace();
-
}
-
-
//2.创建文件
-
//import java.io.*;
-
File myFilePath = new File(str1);
-
try {
-
if (!myFilePath.exists()) {
-
myFilePath.createNewFile();
-
}
-
FileWriter resultFile = new FileWriter(myFilePath);
-
PrintWriter myFile = new PrintWriter(resultFile);
-
myFile.println(str2);
-
resultFile.close();
-
}
-
catch (Exception e) {
-
System.out.println("新建文件操作出错");
-
e.printStackTrace();
-
}
-
-
//3.删除文件
-
//import java.io.*;
-
File myDelFile = new File(str1);
-
try {
-
myDelFile.delete();
-
}
-
catch (Exception e) {
-
System.out.println("删除文件操作出错");
-
e.printStackTrace();
-
}
-
-
//4.删除文件夹
-
//import java.io.*;
-
File delFolderPath = new File(str1);
-
try {
-
delFolderPath.delete(); //删除空文件夹
-
}
-
catch (Exception e) {
-
System.out.println("删除文件夹操作出错");
-
e.printStackTrace();
-
}
-
-
//5.删除一个文件下夹所有的文件夹
-
//import java.io.*;
-
File delfile=new File(str1);
-
File[] files=delfile.listFiles();
-
for(int i=0;i<files.length;i++){
-
if(files[i].isDirectory()){
-
files[i].delete();
-
}
-
}
-
-
//6.清空文件夹
-
//import java.io.*;
-
File delfilefolder=new File(str1);
-
try {
-
if (!delfilefolder.exists()) {
-
delfilefolder.delete();
-
}
-
delfilefolder.mkdir();
-
}
-
catch (Exception e) {
-
System.out.println("清空目录操作出错");
-
e.printStackTrace();
-
}
-
-
//7.读取文件
-
//import java.io.*;
-
// 逐行读取数据
-
FileReader fr = new FileReader(str1);
-
BufferedReader br = new BufferedReader(fr);
-
String str2 = br.readLine();
-
while (str2 != null) {
-
-
str2 = br.readLine();
-
}
-
br.close();
-
fr.close();
-
-
//8.写入文件
-
//import java.io.*;
-
// 将数据写入文件
-
try {
-
FileWriter fw = new FileWriter(str1);
-
fw.write(str2);
-
fw.flush();
-
fw.close();
-
} catch (IOException e) {
-
e.printStackTrace();
-
}
-
-
//9.写入随机文件
-
//import java.io.*;
-
try {
-
RandomAcessFile logFile=new RandomAcessFile(str1,"rw");
-
long lg=logFile.length();
-
logFile.seek(str2);
-
logFile.writeByte(str3);
-
}catch(IOException ioe){
-
System.out.println("无法写入文件:"+ioe.getMessage());
-
}
-
-
//10.读取文件属性
-
//import java.io.*;
-
// 文件属性的取得
-
File f = new File(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("文件夹的最后修改日期为:" + new Date(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("文件的最后修改日期为:" + new Date(f.lastModified()));
-
}
-
if(f.canRead()){
-
str2
-
}
-
if(f.canWrite()){
-
str3
-
}
-
-
//11.写入属性
-
//import java.io.*;
-
File filereadonly=new File(str1);
-
try {
-
boolean b=filereadonly.setReadOnly();
-
}
-
catch (Exception e) {
-
System.out.println("拒绝写访问:"+e.printStackTrace());
-
}
-
-
//12.枚举一个文件夹中的所有文件
-
//import java.io.*;
-
//import java.util.*;
-
LinkedList<String> folderList = new LinkedList<String>();
-
folderList.add(str1);
-
while (folderList.size() > 0) {
-
File file = new File(folderList.peek());
-
folderList.removeLast();
-
File[] files = file.listFiles();
-
ArrayList<File> fileList = new ArrayList<File>();
-
for (int i = 0; i < files.length; i++) {
-
if (files[i].isDirectory()) {
-
folderList.add(files[i].getPath());
-
} else {
-
fileList.add(files[i]);
-
}
-
}
-
for (File f : fileList) {
-
str2=f.getAbsoluteFile();
-
str3
-
}
-
}
-
-
//13.复制文件夹
-
//import java.io.*;
-
//import java.util.*;
-
LinkedList<String> folderList = new LinkedList<String>();
-
folderList.add(str1);
-
LinkedList<String> folderList2 = new LinkedList<String>();
-
folderList2.add(str2+ str1.substring(str1.lastIndexOf("\\")));
-
while (folderList.size() > 0) {
-
(new File(folderList2.peek())).mkdirs(); // 如果文件夹不存在 则建立新文件夹
-
File folders = new File(folderList.peek());
-
String[] file = folders.list();
-
File temp = null;
-
try {
-
for (int i = 0; i < file.length; i++) {
-
if (folderList.peek().endsWith(File.separator)) {
-
temp = new File(folderList.peek() + File.separator
-
+ file[i]);
-
} else {
-
temp = new File(folderList.peek() + File.separator + file[i]);
-
}
-
if (temp.isFile()) {
-
FileInputStream input = new FileInputStream(temp);
-
FileOutputStream output = new FileOutputStream(
-
folderList2.peek() + File.separator + (temp.getName()).toString());
-
byte[] b = new byte[5120];
-
int len;
-
while ((len = input.read(b)) != -1) {
-
output.write(b, 0, len);
-
}
-
output.flush();
-
output.close();
-
input.close();
-
}
-
if (temp.isDirectory()) {// 如果是子文件夹
-
for (File f : temp.listFiles()) {
-
if (f.isDirectory()) {
-
folderList.add(f.getPath());
-
folderList2.add(folderList2.peek()
-
+ File.separator + f.getName());
-
}
-
}
-
}
-
}
-
} catch (Exception e) {
-
//System.out.println("复制整个文件夹内容操作出错");
-
e.printStackTrace();
-
}
-
folderList.removeFirst();
-
folderList2.removeFirst();
-
}
-
-
//14.复制一个文件夹下所有的文件夹到另一个文件夹下
-
//import java.io.*;
-
//import java.util.*;
-
File copyfolders=new File(str1);
-
File[] copyfoldersList=copyfolders.listFiles();
-
for(int k=0;k<copyfoldersList.length;k++){
-
if(copyfoldersList[k].isDirectory()){
-
ArrayList<String>folderList=new ArrayList<String>();
-
folderList.add(copyfoldersList[k].getPath());
-
ArrayList<String>folderList2=new ArrayList<String>();
-
folderList2.add(str2+"/"+copyfoldersList[k].getName());
-
for(int j=0;j<folderList.length;j++){
-
(new File(folderList2.get(j))).mkdirs(); //如果文件夹不存在 则建立新文件夹
-
File folders=new File(folderList.get(j));
-
String[] file=folders.list();
-
File temp=null;
-
try {
-
for (int i = 0; i < file.length; i++) {
-
if(folderList.get(j).endsWith(File.separator)){
-
temp=new File(folderList.get(j)+"/"+file[i]);
-
} else {
-
temp=new File(folderList.get(j)+"/"+File.separator+file[i]);
-
}
-
FileInputStream input = new FileInputStream(temp);
-
if(temp.isFile()){
-
FileInputStream input = new FileInputStream(temp);
-
FileOutputStream output = new FileOutputStream(folderList2.get(j) + "/" + (temp.getName()).toString());
-
byte[] b = new byte[5120];
-
int len;
-
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 (Exception e) {
-
System.out.println("复制整个文件夹内容操作出错");
-
e.printStackTrace();
-
}
-
}
-
}
-
}
-
-
//15.移动文件夹
-
//import java.io.*;
-
//import java.util.*;
-
LinkedList<String> folderList = new LinkedList<String>();
-
folderList.add(str1);
-
LinkedList<String> folderList2 = new LinkedList<String>();
-
folderList2.add(str2 + str1.substring(str1.lastIndexOf("\\")));
-
while (folderList.size() > 0) {
-
(new File(folderList2.peek())).mkdirs(); // 如果文件夹不存在 则建立新文件夹
-
File folders = new File(folderList.peek());
-
String[] file = folders.list();
-
File temp = null;
-
try {
-
for (int i = 0; i < file.length; i++) {
-
if (folderList.peek().endsWith(File.separator)) {
-
temp = new File(folderList.peek() + File.separator + file[i]);
-
} else {
-
temp = new File(folderList.peek() + File.separator + file[i]);
-
}
-
if (temp.isFile()) {
-
FileInputStream input = new FileInputStream(temp);
-
FileOutputStream output = new FileOutputStream(
-
folderList2.peek() + File.separator + (temp.getName()).toString());
-
byte[] b = new byte[5120];
-
int len;
-
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 (File f : temp.listFiles()) {
-
if (f.isDirectory()) {
-
folderList.add(f.getPath());
-
folderList2.add(folderList2.peek() + File.separator + f.getName());
-
}
-
}
-
}
-
}
-
} catch (Exception e) {
-
// System.out.println("复制整个文件夹内容操作出错");
-
e.printStackTrace();
-
}
-
folderList.removeFirst();
-
folderList2.removeFirst();
-
}
-
File f = new File(str1);
-
if (!f.delete()) {
-
for (File file : f.listFiles()) {
-
if (file.list().length == 0) {
-
System.out.println(file.getPath());
-
file.delete();
-
}
-
}
-
}
-
//16.移动一个文件夹下所有的文件夹到另一个目录下
-
//import java.io.*;
-
//import java.util.*;
-
File movefolders=new File(str1);
-
File[] movefoldersList=movefolders.listFiles();
-
for(int k=0;k<movefoldersList.length;k++){
-
if(movefoldersList[k].isDirectory()){
-
ArrayList<String>folderList=new ArrayList<String>();
-
folderList.add(movefoldersList[k].getPath());
-
ArrayList<String>folderList2=new ArrayList<String>();
-
folderList2.add(str2+"/"+movefoldersList[k].getName());
-
for(int j=0;j<folderList.length;j++){
-
(new File(folderList2.get(j))).mkdirs(); //如果文件夹不存在 则建立新文件夹
-
File folders=new File(folderList.get(j));
-
String[] file=folders.list();
-
File temp=null;
-
try {
-
for (int i = 0; i < file.length; i++) {
-
if(folderList.get(j).endsWith(File.separator)){
-
temp=new File(folderList.get(j)+"/"+file[i]);
-
}
-
else{
-
temp=new File(folderList.get(j)+"/"+File.separator+file[i]);
-
}
-
FileInputStream input = new FileInputStream(temp);
-
if(temp.isFile()){
-
FileInputStream input = new FileInputStream(temp);
-
FileOutputStream output = new FileOutputStream(folderList2.get(j) + "/" + (temp.getName()).toString());
-
byte[] b = new byte[5120];
-
int len;
-
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 (Exception e) {
-
System.out.println("复制整个文件夹内容操作出错");
-
e.printStackTrace();
-
}
-
}
-
movefoldersList[k].delete();
-
}
-
}
-
-
//17.以一个文件夹的框架在另一个目录创建文件夹和空文件
-
//import java.io.*;
-
//import java.util.*;
-
boolean b=false;//不创建空文件
-
ArrayList<String>folderList=new ArrayList<String>();
-
folderList.add(str1);
-
ArrayList<String>folderList2=new ArrayList<String>();
-
folderList2.add(str2);
-
for(int j=0;j<folderList.length;j++){
-
(new File(folderList2.get(j))).mkdirs(); //如果文件夹不存在 则建立新文件夹
-
File folders=new File(folderList.get(j));
-
String[] file=folders.list();
-
File temp=null;
-
try {
-
for (int i = 0; i < file.length; i++) {
-
if(folderList.get(j).endsWith(File.separator)){
-
temp=new File(folderList.get(j)+"/"+file[i]);
-
}
-
else{
-
temp=new File(folderList.get(j)+"/"+File.separator+file[i]);
-
}
-
FileInputStream input = new FileInputStream(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 (Exception e) {
-
System.out.println("复制整个文件夹内容操作出错");
-
e.printStackTrace();
-
}
-
}
-
-
//18.复制文件
-
//import java.io.*;
-
int bytesum = 0;
-
int byteread = 0;
-
File oldfile = new File(str1);
-
try {
-
if (oldfile.exists()) { //文件存在时
-
FileInputStream inStream = new FileInputStream(oldfile); //读入原文件
-
FileOutputStream fs = new FileOutputStream(new File(str2,oldfile.getName()));
-
byte[] buffer = new byte[5120];
-
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();
-
}
-
-
//19.复制一个文件夹下所有的文件到另一个目录
-
//import java.io.*;
-
File copyfiles=new File(str1);
-
File[] files=copyfiles.listFiles();
-
for(int i=0;i<files.length;i++){
-
if(!files[i].isDirectory()){
-
int bytesum = 0;
-
int byteread = 0;
-
try {
-
InputStream inStream = new FileInputStream(files[i]); //读入原文件
-
FileOutputStream fs = new FileOutputStream(new File(str2,files[i].getName());
-
byte[] buffer = new byte[5120];
-
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();
-
}
-
}
-
}
-
-
//20.提取扩展名
-
String str2=str1.substring(str1.lastIndexOf(".")+1);