|
Сериализация / десериализации объектов очень полезна, если вы хотите использовать объект Java в будущем. Следующий код показывает, как десериализации сериализованной объект.
try {
// Deserialize from a file
File file = new File("filename.ser");
ObjectInputStream in = new ObjectInputStream(new FileInputStream(file));
// Deserialize the object
javax.swing.JButton button = (javax.swing.JButton) in.readObject();
in.close();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
|
|
|
Этот образец кода делает файлов только для чтения.
import java.io.File;
public class ReadOnlyExp {
public static void main(String[] args) {
File file=new File("c:\\MyFile");
file.setReadOnly();
}
}
|
|
|
Этот код сначала создает файл (MyFile.txt) и добавить данные, используя DataOutputStream. DataOutputStream есть специальные методы, чтобы написать различные типы данных, как writeInt () использует для целого, writeChars () использует для струнных.
package MyProject;
import java.io.*;
public class FileOutput {
public static void main(String[] args) {
FileOutputStream fos;
DataOutputStream dos;
try {
File file= new File("C:\\MyFile.txt");
fos = new FileOutputStream(file);
dos=new DataOutputStream(fos);
dos.writeInt(2333);
dos.writeChars("Hello");
} catch (IOException e) {
e.printStackTrace();
}
}
}
|
|
|
Этот код будет читать MyFile.txt и распечатать его содержимое на консоль. Она читает файл построчно в виде DataInputStream.
package MyProject
import java.io.BufferedInputStream;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
/**
* This program reads a text file line by line and print to the console. It uses
* FileOutputStream to read the file.
*
*/
public class FileInput {
public static void main(String[] args) {
File file = new File("C:\\MyFile.txt");
FileInputStream fis = null;
BufferedInputStream bis = null;
DataInputStream dis = null;
try {
fis = new FileInputStream(file);
// Here BufferedInputStream is added for fast reading.
bis = new BufferedInputStream(fis);
dis = new DataInputStream(bis);
// dis.available() returns 0 if the file does not have more lines.
while (dis.available() != 0) {
// this statement reads the line from the file and print it to
// the console.
System.out.println(dis.readLine());
}
// dispose all the resources after using them.
fis.close();
bis.close();
dis.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
|
|
|
Этот пример показывает, как читать полностью файла в переменную в одном кадре.
import java.io.*;
public class ReadFullyIntoVar {
public static void main(String argv[]){
try {
FileInputStream file = new FileInputStream (argv[0]);
DataInputStream in = new DataInputStream (file);
byte[] b = new byte[in.available ()];
in.readFully (b);
in.close ();
String result = new String (b, 0, b.length, "Cp850");
/* */
System.out.println(result);
}
catch (Exception e) {
e.printStackTrace();
}
}
}
|
|
|
Вы можете открыть тот же файл для чтения, а также чтение в использовании Java RandomAccessFile класс. RandomAccessFile класс поддерживает одновременное чтение и запись из / в том же файле, если открыть файл в режиме "РАО":
RandomAccessFile raf =
new RandomAccessFile("filename.txt", "rw");
|
|
|
Просто используйте Lastmodified () методом из объектных файлов. но возвращаемого значения зависит от системы и должно быть использовано только для сравнения с другими значениями возвращается последнего изменения. Оно не должно быть истолковано как абсолютного времени.
String s1 = "file1.dat";
String s2 = "file2.dat";
File f1 = new File(s1);
File f2 = new File(s2);
if (f1.lastModified() < f2.lastModified())
System.out.println(s1 + " is older than " + s2);
|
|
|
Этот совет Java иллюстрирует использование метода случайного доступа к файлам в приложении. Обычно все файлы разрешений последовательного доступа. Случайный доступ к файлам, с другой стороны, разрешение непоследовательным, или случайного, доступа к содержимого файла.
try {
File f = new File("filename");
RandomAccessFile raf = new RandomAccessFile(f, "rw");
// Read a character
char ch = raf.readChar();
// Seek to end of file
raf.seek(f.length());
// Append to the end
raf.writeChars("aString");
raf.close();
} catch (IOException e) {
}
|
|
|
Предположим, что у Вас есть текстовый участок, и вы хотите, чтобы процесс его содержания строка за строкой. В таком случае вы можете легко использовать StringReader класс.
The follwoing example shows how to print the first character of each line of a textarea content:
String str;
BufferedReader reader = new BufferedReader(
new StringReader(contentTextArea.getText()));
try {
while ((str = reader.readLine()) != null) {
if (str.length() > 0) System.out.println(str.charAt(0));
}
} catch(IOException e) {
e.printStackTrace();
}
|
|