您的位置:首页 > 编程语言 > Java开发

Java文件操作1

2015-09-30 20:42 387 查看
//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) {

str3

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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: