java tutorial - Манипулирование файлами и каталогами в Java - учебник java - java programming - учиться java - java basics - java for beginners



  • На самом деле, вы часто работаете с файлами и папками в системе, операции здесь включают добавление, удаление, переименование. Java дает вам два класса, чтобы сделать это:
    • java.io.File
    • java.nio.file.Files

java.io.File

  • Java.io.File класс представляет файл (file) или папку (directory) системы, он введен в Java, из версии 1.0

java.nio.file.Files

  • Версия 7.0, Java дополняет java.nio.file.Files класс, что позволяет легко манипулировать файлами и папками, все методы этого класса являются статическими и естественными (static and nature)

2- java.io.File

  • Java.io.File класс представляет файл или папку в системе, которая представляет путь (pathname). В следующем примере создается объект File представляющий путь в Windows, или Unix:
// Window
 
File apath1 = new File("C:/mydocument/test.txt");
 
File apath2 = new File("C:/mydocument/java");
 
// Unix
 
File apath3 = new File("/mydocument/test.txt");
 
File apath3 = new File("/mydocument/java");
нажмите кнопку ниже, чтобы скопировать код. - от - java tutorials - команда
  • java.io.File может представлять собой путь (pathname), где этот путь может на самом деле не существовать в системе. Если существовует, то может быть в виде папки (directory) или файла (file).
  • Следующий простой пример создает объект File, который представляет собой путь, и проверяет его существование, записывает основную информацию, если путь на самом деле существует:

FileInfoExample.java

package com.wikitechy.filedirectory;
 
import java.io.File;
import java.util.Date;
 
public class FileInfoExample {
 
    public static void main(String[] args) {
 
        // Создать объект File представлюящий путь.
        File apath = new File("C:/test/mytext.txt");
 
        // Проверка существования.
        System.out.println("Path exists? " + apath.exists());
 
        if (apath.exists()) {
 
            // Проверить является ли 'apath' папкой или нет?
            System.out.println("Directory? " + apath.isDirectory());
 
            // Проверить является ли 'apath' скрытым путем или нет?
            System.out.println("Hidden? " + apath.isHidden());
 
            // Простое название.
            System.out.println("Simple Name: " + apath.getName());
 
            // Абсолютный путь.
            System.out.println("Absolute Path: " + apath.getAbsolutePath());
 
            // Проверка размера файла (По единицам byte):
            System.out.println("Length (bytes): " + apath.length());
 
            // Последнее изменение (в милисекундах)
            long lastMofifyInMillis = apath.lastModified();
            Date lastModifyDate = new Date(lastMofifyInMillis);
 
            System.out.println("Last modify date: " + lastModifyDate);
 
        }
 
    }
 
}
нажмите кнопку ниже, чтобы скопировать код. - от - java tutorials - команда
 манипулировать mytext
java - джава - учиться java - учебник java -
манипулировать mytext
- примеры java - java-программы
 манипулировать mytext вариантов размещения
java - джава - учиться java - учебник java -
манипулировать mytext вариантов размещения
- примеры java - java-программы
 Пример файла информация
java - джава - учиться java - учебник java -
Пример файла информация
- примеры java - java-программы

3- Создать каталог

  • Класс File содержит два метода для создания:

MakeDirExample.java

 сделать dir пример
java - джава - учиться java - учебник java -
сделать dir пример
- примеры java - java-программы

4- File Filter

  • Java.io.File класс предлагает несколько способов, чтобы получить список подфайлов и подкаталогов в каталоге. И использует FileFilter для фильтрации файлов
  • Например, список всех корневых каталогов:

RootFilesExample.java

package com.wikitechy.filedirectory;
 
import java.io.File;
 
public class RootFilesExample {
 
    public static void main(String[] args) {
 
 
        File[] roots = File.listRoots();
         
        for(File root: roots)  {
            System.out.println(root.getAbsolutePath());
        }
 
    }
 
}
нажмите кнопку ниже, чтобы скопировать код. - от - java tutorials - команда
 Пример файлов-корня
java - джава - учиться java - учебник java -
Пример файлов-корня
- примеры java - java-программы
  • В следующем примере составляется список всех файлов и подпапок в непосредственной папке:

FileListExample.java

package com.wikitechy.filedirectory;
 
import java.io.File;
 
public class FileListExample {
 
    public static void main(String[] args) {
        
        System.out.println("File[] listFiles():\n");
 
        File dir = new File("C:/test");
 
        File[] children = dir.listFiles();
 
        for (File file : children) {
            System.out.println(file.getAbsolutePath());
        }
 
        System.out.println("\n-----------------------");
        
        System.out.println("String[] list():\n");
 
        String[] paths = dir.list();
 
        for (String path : paths) {
            System.out.println(path);
        }
    }
 
}
нажмите кнопку ниже, чтобы скопировать код. - от - java tutorials - команда
 Пример фильтра файлов
java - джава - учиться java - учебник java -
Пример фильтра файлов
- примеры java - java-программы

java.io.FileFilter

package java.io;
 
 
@FunctionalInterface
public interface FileFilter {
  
    boolean accept(File pathname);
 
 
}
нажмите кнопку ниже, чтобы скопировать код. - от - java tutorials - команда
  • Простой пример ниже использует FileFilter, чтобы отфильтровать файлы в папке и имеющие расширенную часть"txt":
package com.wikitechy.filedirectory;
 
import java.io.File;
import java.io.FileFilter;
 
public class TxtFileFilter implements FileFilter {
 
    // Только принимает 'pathname' как файл и имеет 'расширение' (extension) это txt.
    @Override
    public boolean accept(File pathname) {
 
        if (!pathname.isFile()) {
            return false;
        }
 
        if (pathname.getAbsolutePath().endsWith(".txt")) {
            return true;
        }
 
        return false;
    }
 
}
нажмите кнопку ниже, чтобы скопировать код. - от - java tutorials - команда

FileFilterExample.java

package com.wikitechy.filedirectory;
 
import java.io.File;
 
public class FileFilterExample {
 
    public static void main(String[] args) {
 
        File dir = new File("C:/test");
 
        File[] txtFiles = dir.listFiles(new TxtFileFilter());
 
        for (File txtFile : txtFiles) {
            System.out.println(txtFile.getAbsolutePath());
        }
    }
 
}
нажмите кнопку ниже, чтобы скопировать код. - от - java tutorials - команда

java.io.FilenameFilter

package java.io;
 
@FunctionalInterface
public interface FilenameFilter {
    /**
     * Tests if a specified file should be included in a file list.
     *
     * @param   dir    the directory in which the file was found.
     * @param   name   the name of the file.
     * @return  <code>true</code> if and only if the name should be
     * included in the file list; <code>false</code> otherwise.
     */
    boolean accept(File dir, String name);
 
}
нажмите кнопку ниже, чтобы скопировать код. - от - java tutorials - команда

TxtFilenameFilter.java

package com.wikitechy.filedirectory;
 
import java.io.File;
import java.io.FilenameFilter;
 
public class TxtFilenameFilter implements FilenameFilter {
 
    // Принимает пути (path) с окончаниями '.txt'
    @Override
    public boolean accept(File dir, String name) {
 
        if (name.endsWith(".txt")) {
            return true;
        }
 
        return false;
    }
 
}
нажмите кнопку ниже, чтобы скопировать код. - от - java tutorials - команда

FilenameFilterExample.java

package com.wikitechy.filedirectory;
 
import java.io.File;
 
public class FilenameFilterExample {
 
    public static void main(String[] args) {
 
        File dir = new File("C:/test");
 
        File[] txtFiles = dir.listFiles(new TxtFilenameFilter());
 
        for (File txtFile : txtFiles) {
            System.out.println(txtFile.getAbsolutePath());
        }
    }
 
}
нажмите кнопку ниже, чтобы скопировать код. - от - java tutorials - команда
 Пример фильтра
java - джава - учиться java - учебник java -
Пример фильтра
- примеры java - java-программы

5- Перечисление всех подпапок

  • Java.io.File класс предлагает несколько методов для перечисления папок и файлов, которые являются "прямым потомком" текущего каталога. В примере ниже, используется рекурсия для перечисления всех папок потомков (дети, внуки, ..) и потомок файла.

RecursiveFileExample.java

package com.wikitechy.filedirectory;
 
import java.io.File;
 
public class RecursiveFileExample {
 
    private void fetchChild(File file) {
 
        System.out.println(file.getAbsolutePath());
 
        if (file.isDirectory()) {
 
            File[] children = file.listFiles();
 
            for (File child : children) {
                // Рекурсивный (Recursive)
                this.fetchChild(child);
            }
        }
 
    }
 
    public static void main(String[] args) {
 
        RecursiveFileExample example = new RecursiveFileExample();
 
        File dir = new File("C:/test");
 
        example.fetchChild(dir);
 
    }
 
}
нажмите кнопку ниже, чтобы скопировать код. - от - java tutorials - команда
 Пример файла рекурсивные
java - джава - учиться java - учебник java -
Пример файла рекурсивные
- примеры java - java-программы

6- Переименование

  • Используя методы rename() класса File, вы можете изменить имя (или путь) файла или каталога. Если вы измените и путь, убедитесь, что новый родительский каталог уже существует.

Переименование

  • Следующий простой пример, чтобы переименовать файл (или папку), но не изменить путь своего отца.

SimpleRenameExample.java

package com.wikitechy.filedirectory;
 
import java.io.File;
 
public class SimpleRenameExample {
 
    public static void main(String[] args) {
 
        File srcFile = new File("C:/test/test2/abc.txt");
 
        File destFile = new File("C:/test/test2/def.txt");
 
        boolean renamed = srcFile.renameTo(destFile);
        
        System.out.println("Renamed: "+ renamed);
 
    }
 
}
нажмите кнопку ниже, чтобы скопировать код. - от - java tutorials - команда

Переименование включая путь родителя:

  • Переименование и измение пути родителя, подобно действию " Cut" файла или папки в другую папку, а затем переименовать ее.

RenameAndPathExample.java

package com.wikitechy.filedirectory;
 
import java.io.File;
 
public class RenameAndPathExample {
 
    public static void main(String[] args) {
 
        // Исходный файл (Source file).
        File srcFile = new File("C:/test/test2/abc.txt");
 
        // Файл назначения (Destination file).
        File destFile = new File("C:/test2/test3/defgh.txt");
 
        if (!srcFile.exists()) {
            System.out.println("Src File doest not exists");
            return;
        }
 
        // Создать родительскую папку файла назначения.
        destFile.getParentFile().mkdirs();
 
        boolean renamed = srcFile.renameTo(destFile);
 
        System.out.println("Renamed: " + renamed);
 
    }
 
}
нажмите кнопку ниже, чтобы скопировать код. - от - java tutorials - команда

Related Searches to Манипулирование файлами и каталогами в Java