- package http;
-
- import java.io.BufferedReader;
- import java.io.BufferedWriter;
- import java.io.FileReader;
- import java.io.FileWriter;
- import java.io.IOException;
-
- /*
- * Read和Write分别对应InputStream和OutputStream
- * 前者用于字符流,后者用于字节流
- * FileReader和FileWrite分别对应与FileInputStream和FileOutputStream
- * BufferedReader和BufferedWrite分别对应与BufferedInputStream和
- * BufferedOutputStream
- * 此示例实现文本文件的字符读写
- */
- public class FileReaderAndBufferedReaderDemo {
- public static String read(String fileName) throws IOException {
- StringBuilder str = new StringBuilder();
- BufferedReader in = new BufferedReader(new FileReader(fileName));
- String s;
- while ((s = in.readLine()) != null)
- str.append(s + '\n');
- in.close();
- return str.toString();
- }
-
- public static void write(String fileName, boolean append)
- throws IOException {
- BufferedWriter out = new BufferedWriter(
- new FileWriter(fileName, append));
- out.write("我是dahai!java hello!");
- out.close();
- }
-
- public static void main(String[] args) {
- try {
- write("file/test3.txt", false);
- System.out.println(read("file/test3.txt"));
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- }
- package http;
- import java.io.BufferedReader;
- import java.io.BufferedWriter;
- import java.io.FileReader;
- import java.io.FileWriter;
- import java.io.IOException;
- /*
- * Read和Write分别对应InputStream和OutputStream
- * 前者用于字符流,后者用于字节流
- * FileReader和FileWrite分别对应与FileInputStream和FileOutputStream
- * BufferedReader和BufferedWrite分别对应与BufferedInputStream和
- * BufferedOutputStream
- * 此示例实现文本文件的字符读写
- */
- public class FileReaderAndBufferedReaderDemo {
- public static String read(String fileName) throws IOException {
- StringBuilder str = new StringBuilder();
- BufferedReader in = new BufferedReader(new FileReader(fileName));
- String s;
- while ((s = in.readLine()) != null)
- str.append(s + '\n');
- in.close();
- return str.toString();
- }
- public static void write(String fileName, boolean append)
- throws IOException {
- BufferedWriter out = new BufferedWriter(
- new FileWriter(fileName, append));
- out.write("我是dahai!java hello!");
- out.close();
- }
- public static void main(String[] args) {
- try {
- write("file/test3.txt", false);
- System.out.println(read("file/test3.txt"));
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- }
- package http;
- import java.io.ByteArrayInputStream;
- import java.io.DataInputStream;
- import java.io.IOException;
- /*
- * DataInputStream用于读取格式化的数据
- */
- public class DataInputStreamAndByteArrayInputStreamDemo {
- public static void main(String[] args) throws IOException {
- DataInputStream in = new DataInputStream(new ByteArrayInputStream(
- FileReaderAndBufferedReaderDemo.read("file/test3.txt")
- .getBytes()));
- while (in.available() != 0)
- System.out.print((char) in.readByte());
- }
- }
- package test;
- import http.FileReaderAndBufferedReaderDemo;
- import java.io.IOException;
- import java.io.StringReader;
- /*
- * StringReader操作的是字符串
- */
- public class StringReaderDemo {
- public static void main(String[] args) throws IOException {
- StringReader in = new StringReader(FileReaderAndBufferedReaderDemo
- .read("file/test3.txt"));
- int c;
- while ((c = in.read()) != -1)
- System.out.print((char) c);
- }
- }
- package test;
- import http.FileReaderAndBufferedReaderDemo;
- import java.io.IOException;
- import java.io.PrintWriter;
- /*
- * 对应于PrintStream
- * 用于格式化输出到文件
- */
- public class PrintWriterDemo {
- public static void main(String[] args) throws IOException {
- // 简化的创建方式
- PrintWriter out = new PrintWriter("file/test4.txt");
- // 也可以这样创建: out=new Printer(new BufferedWriter(new
- // FileWriter("file/test4.txt")));
- // 格式化输出到文本
- out.println('a');
- out.println(3);
- out.println(3.5);
- out.print("我爱你!i love you");
- out.close();
- // 从文本读取刚才的写入
- System.out.println(FileReaderAndBufferedReaderDemo
- .read("file/test4.txt"));
- }
- }
- package test;
- import java.io.FileNotFoundException;
- import java.io.IOException;
- import java.io.RandomAccessFile;
- /*
- * RandomAccessFile直接继承Object,可以进行随机输入和输出,类似于c语言的文件操作
- * 要指明以什么方式打开文件,用这个类时要知道文件的排版,该类有读写基本类型和UTF-8字符串
- * 的各种方法,可以定位到文件的某一位置进行读写
- */
- public class RandomAccessFileDemo {
- public static void main(String[] args) throws FileNotFoundException {
- RandomAccessFile out = new RandomAccessFile("file/test5", "rw");
- try {
- out.writeInt(1);
- out.writeDouble(3.3);
- out.writeChar('a');
- out.writeUTF("hello,java!");
- out.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- RandomAccessFile in = new RandomAccessFile("file/test5", "r");
- try {
- in.seek(4);
- System.out.println(in.readDouble());
- in.seek(4+8+2);
- System.out.println(in.readUTF());
- in.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- package test;
- import java.io.FileInputStream;
- import java.io.FileNotFoundException;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.io.ObjectInputStream;
- import java.io.ObjectOutputStream;
- import java.io.Serializable;
- /*
- * ObjectInputStream(ObjectOutputStream)用于对象的序列化
- * 直接对一个对象进行读写,该对象须实现Serializable
- */
- public class ObjectInputStreamDemo {
- public static void writeObject(String fileName, Object o, boolean isAppend)
- throws FileNotFoundException, IOException {
- ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(
- fileName, true));
- out.writeObject(o);
- out.close();
- }
- public static Object readObject(String fileName)
- throws FileNotFoundException, IOException, ClassNotFoundException {
- ObjectInputStream in = new ObjectInputStream(new FileInputStream(
- fileName));
- Object o = in.readObject();
- in.close();
- return o;
- }
- public static void main(String[] args) {
- try {
- ObjectInputStreamDemo.writeObject("file/object", new Person(),
- false);
- ((Person) ObjectInputStreamDemo.readObject("file/object"))
- .display();
- } catch (IOException e) {
- e.printStackTrace();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
- class Person implements Serializable {
- private String name = "刘海房liuhaifang";
- private int sex = 0;
- Person(String name, int sex) {
- this.name = name;
- this.sex = sex;
- }
- Person() {
- }
- void display() {
- System.out.println("my name is :" + name);
- String s = (sex == 0) ? "男" : "女";
- System.out.println(s);
- }
- }