1. 程式人生 > >JavaI/O:簡單的使用Reader和Writer來操作檔案

JavaI/O:簡單的使用Reader和Writer來操作檔案

Writer類與Reader類是以字元流傳輸資料,一個字元是兩個位元組

字元流除了是以字元方式(兩個位元組)傳輸資料外,另外一點與位元組流不同的是字元流使用緩衝區,通過緩衝區再對檔案進行操作。位元組流位元組對檔案進行操作。使用字元流類時關閉字元流會強制將字元流緩衝區的類容輸出,如果不想關閉也將字元流進行輸出,使用Writer類的flush()方法。

Reader讀取資料:

try {
            Reader reader = new FileReader(
                    "D:\\cmz\\java\\JavaOOP6.0\\pet.template");
            char ch[] = new char[45];
            StringBuffer buffer = new StringBuffer();
            try {
                int length = reader.read(ch);
                while (length != -1) {
                    buffer.append(ch);
                    length = reader.read();
                }
                String str = " 您好!我的名字是{name},我是一隻{type}.我的主人是{master}";
                System.out.println("替換前:" + str);
                str = str.replace("{name}", "歐歐");
                str = str.replace("{type}", "狗狗");
                str = str.replace("{master}", "程沐喆");
                System.out.println("替換後:" + str);
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } finally {
                try {
                    reader.close();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

            }

        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }

使用writer操作資料:

String str = "您好!我的名字是歐歐,我是一隻狗狗.我的主人是李偉";
        try {
            FileWriter file = new FileWriter("D:\\cmz\\java\\JavaOOP6.0\\pet.template");
            file.write(str);
            if (null!=file) {
                file.close();
                System.out.println("寫入成功");
            }
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }