JavaSE習題 第九章 輸入輸出流


問答題

1.如果准備讀取一個文件的內容,應該使用FileInputStream還是FileOutputStream?

FileInputStream

2.FileInputStream流的read()方法與FileReader流的read()方法有何不同?

FIleInputStream的read可以讀一個字節,而FileReader中的read可以讀一個字符

3.BufferedReader流能指向一個文件對象嗎?

不能

4.ByteArrayOutputStream流怎樣獲取緩沖區的內容?

獲取byte數組的字節單元

5.PipedInputStream類和PipedOutputStream類的主要用途是什么?

換線程進行管道輸入輸出

6.使用ObjectInputStream類和ObjectOutputStream有哪些注意事項?

保證對象是序列化的,要實現Serializable

7.怎樣使用輸入流和輸出流及技術克隆對象?

8.使用RandomAccessFile類讀寫文件的好處是什么?

可以獲取文件指針

作業題

1.編寫一個應用程序,讀取一個文本文件的內容。

public static void main(String[] args) throws IOException{
        FileInputStream fis=new FileInputStream(new File("1.txt"));
        int b;
        while((b=fis.read())!=-1) {
            System.out.print((char)b);
        }
        fis.close();
    }

 

2.編寫一個應用程序,將用戶鍵盤輸入的10行文字存入文件

public static void main(String[] args) throws IOException{
        FileWriter fw=new FileWriter("2.txt");
        BufferedWriter bw=new BufferedWriter(fw);
        String str;
        Scanner sc=new Scanner(System.in);
        for (int i = 0; i < 10; i++) {
            str=sc.nextLine();
            bw.write(str+"\n");
        }
        sc.close();
        bw.close();
        fw.close();
    }

3.使用數組字符流將俄文字母寫入內存,再從內存取出

public static void main(String[] args) throws IOException{
        String eWen="Аа Бб Вв Гг Дд Ее Ёё Жж Зз Ии Йй Кк Лл Мм Нн Оо Пп Рр Сс Тт Уу Фф Хх Цц Чч Шш Щщ Ъъ Ыы Ьь Ээ Юю Яя";
        ByteArrayOutputStream baos=new ByteArrayOutputStream();
        ByteArrayInputStream bais=new ByteArrayInputStream(eWen.getBytes());
        int n;
        while((n=bais.read())!=-1) {
           baos.write(n);
        }
        System.out.println(baos.toString());
    }

 

4.編寫一個應用程序,將用戶從鍵盤輸入的10個整數存入文件,再順序讀出

public static void main(String[] args) throws IOException{
       BufferedWriter bw=new BufferedWriter(new FileWriter(new File("6.txt")));

       Scanner sc =new Scanner(System.in);
       for(int i=0;i<10;i++) {
          bw.write(sc.nextInt()+"\n");
       }
       bw.close();
       BufferedReader br=new BufferedReader(new FileReader(new File("6.txt")));
       for(int i=0;i<10;i++) {
           System.out.println(br.readLine());
        }
       br.close();
       sc.close();
    }

 

5.編寫一個應用程序,要求將一個LinkedList<E>創建的對象寫入文件,再讀出一個LinkedList<E>對象,並遍歷LinkedList<E>節點中的數據

    public static void main(String[] args) throws IOException, ClassNotFoundException{
        LinkedList<String> ll=new LinkedList<>();
        ll.add("name");
        ll.add("age");
        ObjectOutputStream oos=new ObjectOutputStream(new FileOutputStream(new File("testOOs.txt")));
        oos.writeObject(ll);
        oos.close();

        ObjectInputStream ois=new ObjectInputStream(new FileInputStream(new File("testOOS.txt")));
        LinkedList<String> ll2=(LinkedList<String>) ois.readObject();
        System.out.println(ll2);
        ois.close();
        
    }

6.使用RandomAccessFile流將一個文本文件倒置輸出

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM