java常见文件操作

  收集整理的java常见文件操作,方便平时使用:

//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 folderList = new LinkedList();
folderList.add(str1);
while (folderList.size() > 0) {
    File file = new File(folderList.peek());
    folderList.removeLast();
    File[] files = file.listFiles();
    ArrayList fileList = new ArrayList();
    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 folderList = new LinkedList();
folderList.add(str1);
LinkedList folderList2 = new LinkedList();
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()){
        ArrayListfolderList=new ArrayList();
        folderList.add(copyfoldersList[k].getPath());
        ArrayListfolderList2=new ArrayList();
        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 folderList = new LinkedList();
folderList.add(str1);
LinkedList folderList2 = new LinkedList();
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()){
        ArrayListfolderList=new ArrayList();
        folderList.add(movefoldersList[k].getPath());
        ArrayListfolderList2=new ArrayList();
        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;//不创建空文件
ArrayListfolderList=new ArrayList();
folderList.add(str1);
ArrayListfolderList2=new ArrayList();
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);
时间: 2024-10-05 06:47:31

java常见文件操作的相关文章

Java api 入门教程 之 JAVA的文件操作

I/O类使用 由于在IO操作中,需要使用的数据源有很多,作为一个IO技术的初学者,从读写文件开始学习IO技术是一个比较好的选择.因为文件是一种常见的数据源,而且读写文件也是程序员进行IO编程的一个基本能力.本章IO类的使用就从读写文件开始. 1 文件操作 文件(File)是 最常见的数据源之一,在程序中经常需要将数据存储到文件中,例如图片文件.声音文件等数据文件,也经常需要根据需要从指定的文件中进行数据的读取.当然, 在实际使用时,文件都包含一个的格式,这个格式需要程序员根据需要进行设计,读取已

JAVA的文件操作【转】

11.3 I/O类使用 由于在IO操作中,需要使用的数据源有很多,作为一个IO技术的初学者,从读写文件开始学习IO技术是一个比较好的选择.因为文件是一种常见的数据源,而且读写文件也是程序员进行IO编程的一个基本能力.本章IO类的使用就从读写文件开始. 11.3.1 文件操作 文件(File)是 最常见的数据源之一,在程序中经常需要将数据存储到文件中,例如图片文件.声音文件等数据文件,也经常需要根据需要从指定的文件中进行数据的读取.当然, 在实际使用时,文件都包含一个的格式,这个格式需要程序员根据

java中文件操作《一》

在日常的开发中我们经常会碰到对文件的操作,在java中对文件的操作都在java.io包下,这个包下的类有File.inputStream.outputStream.FileInputStream.FileOutputStream.reader.writer.FileReader.FileWriter等等,其中对文件的操作又分为两大类,一类是字符流,一类是字节流.所谓的字符流是以字节(8b)为单位进行读/写,字符流即使用字符为单位读/写,java使用unicode编码,一个字符两个字节,下面分别对

java IO文件操作简单基础入门例子,IO流其实没那么难

IO是JAVASE中非常重要的一块,是面向对象的完美体现,深入学习IO,你将可以领略到很多面向对象的思想.今天整理了一份适合初学者学习的简单例子,让大家可以更深刻的理解IO流的具体操作. 1.文件拷贝 try {             File inputFile = new File(args[0]);             if (!inputFile.exists()) {                 System.out.println("源文件不存在,程序终止");

java的文件操作类File

java.io.File类,是java获取文件/文件夹的所有属性,和完成所有相关操作的类 例子: 1 package test.file.IO; 2 3 import java.io.*; 4 public class TestFile{ 5 public static void main(String[] args){ 6 //1.File类是java用来处理文件的类,它可以获取文件的所有属性 和 完成文件所需要的所有操作 7 // 所以使用的第一步就是new一个File对象 8 // Fil

Java常用文件操作-2

上篇文章记录了常用的文件操作,这里记录下通过SSH服务器操作Linux服务器的指定路径下的文件. 这里用到了第三方jar包 jsch-0.1.53.jar 1.删除服务器上指定路径下的所有文件(包括本目录)-经测试,在Linux下运行,没有问题 1 /** 2 * 删除 3 *@param dst 4 *@param sftpUtil 5 *@return 6 *@author qin_hqing 7 *@date 2015年7月6日 下午4:45:31 8 *@comment 9 */ 10

java之文件操作

一.File类 1.1File类说明 File类关心的是磁盘上文件的存储,描述的是一个文件或者文件夹.在整个java.io包中,File类是唯一一个与文件本身操作有关的类,所谓的文件本身指的是文件的创建,删除,重命名,修改文件日期,获取文件的大小等. 1.2体验File类 package com.boxiaoyuan.www; import java.io.File; public class Demo03 { public static void main(String[] args) { F

java File文件操作共用方法整理

package org.jelly.util; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FileReader; import java.i

java对文件操作之实用

创建文件 package com.pre; import java.io.File; public class WJ { public static void main(String[] args) throws Exception { File file=new File("D:"+File.separator+"text2.txt");//创建路径下的文件 if(!file.getParentFile().exists())//如果父路径不存在 { file.g