Чтение файла в массив байтов можно сделать следующим образом:


    public static byte[] getBytesFromFile(File filethrows IOException {

        InputStream is = new FileInputStream(file);

    

        // Get the size of the file

        long length = file.length();

    

        if (length > Integer.MAX_VALUE) {

            // File is too large

        }

    

        // Create the byte array to hold the data

        byte[] bytes = new byte[(int)length];

    

        // Read in the bytes

        int offset = 0;

        int numRead = 0;

        while (offset < bytes.length

               && (numRead=is.read(bytes, offset, bytes.length-offset)) >= 0) {

            offset += numRead;

        }

    

        // Ensure all the bytes have been read in

        if (offset < bytes.length) {

            throw new IOException("Could not completely read file "+file.getName());

        }

    

        // Close the input stream and return bytes

        is.close();

        return bytes;

    }

Рабочим каталогом является расположение в файловой системе, из которой он ссылается на Java команду. Она может быть получена путем получения имущества user.dir системы с помощью java.lang.System класс.


String curDir = System.getProperty("user.dir");


Сериализация объекта преобразования объектов в последовательность байтов так Cam быть записаны на диск или может быть перенесена на сервер. Эта последовательность байтов может быть позднее десериализованы в исходный объект. После десериализации объекта том же состоянии, как это было, когда она была сериализованной

Java предоставляет этот объект через ObjectInput и ObjectOutput интерфейсов. Конкретное осуществление ObjectOutput и OnjectInput интерфейсов содержится в ObjectOutputStream и ObjectInputStream классах соответственно. Эти два интерфейса, имеют следующие методы:

final void writeObject(Object obj) tthrows IOException
final Object readObejct() through IOException, ClassNotFoundException

WriteObject () Метод может быть использован быть использован для написания любой объект в поток, в том числе строк и массивов и ReadObject () может быть использован для чтения любого потока тех пор, пока объект поддерживает интерфейс java.io.Serializable.

Этот код сначала записывается Serializable объекты в файл. А потом прочитал и тот же файл и выводит объект на консоли. При записи в файл объекты преобразуются в байтовых потоков и при чтении этого потока байтов де сериализованной получить объекты в первоначальное состояние.


import java.io.*;



public class SerializableEmployee implements Serializable {

    String name;

    int age;

    double salary;



    SerializableEmployee(String name, int age, double salary) {

        this.name = name;

        this.age = age;

        this.salary = salary;

    }



    public void showDetails() {

        System.out.println("Name   : " + name);

        System.out.println("Age    : " + age);

        System.out.println("Salary : " + salary);

    }

}



class ObjectSerializationDemo {

    void writeData() {

        SerializableEmployee db[] {

                new SerializableEmployee("Tom"251200.25),

                new SerializableEmployee("Dick"221223.25),

                new SerializableEmployee("Harry"251345.25) };

        try {

            FileOutputStream out = new FileOutputStream("c://employee.txt");

            try {

                ObjectOutputStream sout = new ObjectOutputStream(out);

                for (int i = 0; i < db.length; i++) {

                    sout.writeObject(db[i]);

                }

                sout.close();



            catch (Exception e) {

                        e.printStackTrace();

        }

    }

     void readData() {

        try {

            FileInputStream in = new FileInputStream("c://employee.txt");

            try {

                ObjectInputStream sin = new ObjectInputStream(in);

                try {

                    SerializableEmployee se = (SerializableEmployeesin

                            .readObject();

                    se.showDetails();

                    se = (SerializableEmployeesin.readObject();

                    se.showDetails();

                    se = (SerializableEmployeesin.readObject();

                    se.showDetails();



                    sin.close();



                catch (Exception e) {

                        e.printStackTrace();

                }

        }



    public static void main(String[] args) {

        ObjectSerializationDemo impl = new ObjectSerializationDemo();

        impl.writeData();

        impl.readData();



    }



}

Вывод:

Name   : Tom
Age    : 25
Salary : 1200.25
Name   : Dick
Age    : 22
Salary : 1223.25
Name   : Harry
Age    : 25
Salary: 1345.25

Эта подсказка показывает программу, которая удаляет файлы с определенным расширением.


import java.io.File;

import java.io.FilenameFilter;

import java.lang.*;



public class delfile {



   public static void main (String args[]) {

     System.out.println("hello");

     delfile td = new delfile();

     td.deleteFiles("c:/test/"".gif");

   }



   public void deleteFilesString d, String e ) {



     ExtensionFilter filter = new ExtensionFilter(e);

     File dir = new File(d);



     String[] list = dir.list(filter);

     File file;

     if (list.length == 0return;



     for (int i = 0; i < list.length; i++) {

       file = new File(d + list[i]);

       boolean isdeleted =   file.delete();

       System.out.print(file);

       System.out.println"  deleted " + isdeleted);

     }

   }



   class ExtensionFilter implements FilenameFilter {



     private String extension;



     public ExtensionFilterString extension ) {

       this.extension = extension;             

     }

     public boolean accept(File dir, String name) {

       return (name.endsWith(extension));

     }

   }

}

Этот совет Java демонстрирует метод копирования каталогов из одного места в другое. Копирование производится с исходная_директория к целевая_директория.

    // If targetLocation does not exist, it will be created.
    public void copyDirectory(File sourceLocation , File targetLocation)
    throws IOException {
        
        if (sourceLocation.isDirectory()) {
            if (!targetLocation.exists()) {
                targetLocation.mkdir();
            }
            
            String[] children = sourceLocation.list();
            for (int i=0; i<children.length; i++) {
                copyDirectory(new File(sourceLocation, children[i]),
                        new File(targetLocation, children[i]));
       &nbs
p;    
}
        else {
            
            InputStream in = new FileInputStream(sourceLocation);
            OutputStream out = new FileOutputStream(targetLocation);
            
            // Copy the bits from instream to outstream
            byte[] buf = new byte[1024];
            int len;
            while ((len = in.read(buf)) 0) {
                out.write(buf, 0, len);
            }
            in.close();
            out.close();
        }
    }

Вы можете захватить выходу внешней программы с помощью логики показано ниже:


import java.io.*;



public class CmdExec {

  public CmdExec(String cmdline) {

    try {

     String line;

     Process p = Runtime.getRuntime().exec(cmdline);

     BufferedReader input = 

       new BufferedReader

         (new InputStreamReader(p.getInputStream()));

     while ((line = input.readLine()) != null) {

       System.out.println(line);

       }

     input.close();

     

    catch (Exception err) {

     err.printStackTrace();

     }

   }



public static void main(String argv[]) {

  new CmdExec("myprog.bat");

  }

}
[myprog.bat]
echo hello world!

Этот совет Java иллюстрирует способ получить имя текущего рабочего каталога. Рабочим каталогом является расположение в файловой системе, из которой он ссылается на Java команду.


    String curDir = System.getProperty("user.dir");

Производных классов класса FilterInputStream принимает ввод из потока и фильтры так, чтобы, когда вы читаете из этого потока, вы можете получить отфильтрованный зрения затрат. Подобные и в случае с классом FilterOutputStream. Фильтрация всего лишь означает, что фильтр потока обеспечивает дополнительную функциональность таких как мониторинг буферизации номера строк или агрегирования данных байт в более значимую примитивный тип данных подразделений. Такие потоки фильтра должны работать в тандеме с производителями и потребителями. Конструкция фильтра позволяет нескольким классам приковали фильтры быть созданы с использованием нескольких слоев гнездования. Каждый последующий доступ класс выхода предыдущего класса путем в переменную. Это называется как сцепление потоков.

Ниже приведен пример программы на сцепление потоки с помощью классов персонажей поток. Здесь FileReader действительно читает из исходного файла. BufferedReader использует объект FileReader читать вклада. LineNumberBuffer считывает информацию с объектом BufferedReader и распределяет номера строк для каждой строки.


import java.io.*;



public class DemoChanning {



  public static void main(String[] args) {



    String s;



    try {

      FileReader fr = new FileReader("C:\\rohit.txt");

      BufferedReader br = new BufferedReader(fr);

      LineNumberReader lr = new LineNumberReader(br);



      while ((s = lr.readLine()) != null)

        System.out.println(lr.getLineNumber() " " + s);



    catch (IOException e) {

      System.out.println(e.getMessage());

    }

  }

}

Входной файл: rohit.txt

Вывод:

1 hi Mohit
2 HOW IS your life going on?
3 it's gettting along fine.

Этот совет Java демонстрирует способ создания временных файлов. Разработчик может использовать этот временный файл для копирования содержимого и разнообразной информации, которые могут потребоваться снова во время исполнения заявки. Это повышает эффективность применения.


    try {



        // Create temporary file.

        File tempfile = File.createTempFile("name"".ext");

    

        // Delete temp file when program exits.

        tempfile.deleteOnExit();

    

        // Write to temp file

        BufferedWriter out = new BufferedWriter(new FileWriter(tempfile));

        out.write("aString");

        out.close();



    catch (IOException e) {

    }

Вы можете использовать следующий код, чтобы реализовать свой собственный файл-браузер на Яве. VisitAllDirsAndFiles метода проходит все папки и файлы в заданной директории. VisitAllDirsAndFiles метода делает то же, только для каталогов. Process () метод должен быть определен на основе Вашей потребности ..


    // Process all files and directories under dir

    public static void visitAllDirsAndFiles(File dir) {



        // You can do whatever you want with this directory

        // E.g. printing its name to the console

        process(dir);

    

        if (dir.isDirectory()) {

            String[] children = dir.list();

            for (int i=0; i<children.length; i++) {

                visitAllDirsAndFiles(new File(dir, children[i]));

            }

        }

    }

    

    // Process only directories under dir

    public static void visitAllDirs(File dir) {

        if (dir.isDirectory()) {

      

            // You can do whatever you want with this directory

            // E.g. printing its name to the console

            process(dir);

    

            String[] children = dir.list();

            for (int i=0; i<children.length; i++) {

                visitAllDirs(new File(dir, children[i]));

            }

        }

    }