码迷,mamicode.com
首页 > 编程语言 > 详细

Java学习日记-----IO流 练习

时间:2018-04-21 14:26:29      阅读:210      评论:0      收藏:0      [点我收藏+]

标签:安全   print   字符   st3   tac   lock   应用   文件中   lin   


分别使用字节流和字符流完成以下程序:

1. 在指定的路径下新建一个 .txt 文件 "test.txt",利用程序在文件中写入如下内容:

"Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于
1995年5月推出的Java程序设计语言和Java平台(即JavaSE, JavaEE, JavaME)的总称。Java 技术具有
卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级
计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业
环境下,Java更具备了显著优势和广阔前景。"

2. 利用程序读取 test.txt 文件的内容, 并在控制台打印

3. 利用程序复制 test.txt 为 test1.txt

package day041301;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

import org.junit.Test;

public class HomeWork {
    // Mr.song

    @Test
    public void test2() {
        // FileOutputStream fos = new FileOutputStream(new File("test.txt"));
        // BufferedOutputStream bos = new BufferedOutputStream(fos);
        try {
            BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(new File("test.txt")));
            String c = "Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于\r\n"
                    + "1995年5月推出的Java程序设计语言和Java平台(即JavaSE, JavaEE, JavaME)的总称。Java 技术具有\r\n"
                    + "卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级\r\n"
                    + "计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业\r\n" + "环境下,Java更具备了显著优势和广阔前景。";

            bos.write(c.getBytes());
            bos.flush();
            bos.close();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    // my maked
    @Test
    //文件复制。利用字符流
    public void test6() {
        BufferedReader br = null;
        BufferedWriter bw = null;
        try {
            br = new BufferedReader(new FileReader("test.txt"));
            bw = new BufferedWriter(new FileWriter("test001.txt"));
            String str;
            while((str = br.readLine()) != null) {
                bw.write(str);
            }
        }catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally {
            if(bw != null) {
                try {
                    bw.close();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                
            }
            if(br != null) {
                try {
                    br.close();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                
            }
        }
    }
    @Test
    // 用字节流读取test.txt
    public void test5() {
        BufferedInputStream bis = null;
        try {
            bis = new BufferedInputStream(new 
                    FileInputStream(new File("test.txt")));
            byte[] b = new byte[10000];//若此处byte[]数组长度过小,可能会存放不下某些中文字符。
            int len;
            while((len = bis.read(b)) != -1) {
                String str = new String(b,0,len);
                System.out.print(str);
            }
        }catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally{
            if(bis != null) {
                
                try {
                    bis.close();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }
    }

    @Test
    public void test4() {
        BufferedReader br = null;
        try {
            br = new BufferedReader(new FileReader("test1.txt"));
            int len;
            char[] c = new char[40];
            while ((len = br.read(c)) != -1) {
                String str = new String(c, 0, len);
                System.out.print(str);
            }
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } finally {

            if (br != null) {

                try {
                    br.close();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }
    }

    @Test
    public void test3() {// 字符流
        try {
            BufferedWriter bw = new BufferedWriter(new FileWriter("test1.txt"));
            String c = "Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于\r\n"
                    + "1995年5月推出的Java程序设计语言和Java平台(即JavaSE, JavaEE, JavaME)的总称。Java 技术具有\r\n"
                    + "卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级\r\n"
                    + "计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业\r\n" + "环境下,Java更具备了显著优势和广阔前景。";
            bw.write(c);
            bw.flush();
            bw.close();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    @Test
    public void test1() {
        FileOutputStream fos = null;// 字节流

        try {
            fos = new FileOutputStream(new File("test.txt"));
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        BufferedOutputStream bos = new BufferedOutputStream(fos);

        String c = "Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于\r\n"
                + "1995年5月推出的Java程序设计语言和Java平台(即JavaSE, JavaEE, JavaME)的总称。Java 技术具有\r\n"
                + "卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级\r\n"
                + "计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业\r\n" + "环境下,Java更具备了显著优势和广阔前景。";
        try {
            bos.write(c.getBytes());
            bos.flush();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        if (bos != null) {

            try {
                bos.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }

    }
}

 

Java学习日记-----IO流 练习

标签:安全   print   字符   st3   tac   lock   应用   文件中   lin   

原文地址:https://www.cnblogs.com/Gaohy/p/8900738.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!