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

java基础学习笔记之IO流

时间:2015-07-05 23:46:51      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:

1.IO流用来处理设备之间的数据传输
方向:硬盘通过“读reader”完成对内存的读取,内存通过“写writer”完成对硬盘的写入
2.Java对数据的操作是通过流的方式
3.Java用于操作流的对象都在IO包中
4.流按操作数据分为两种:字节流和字符流
--字符流的由来:
》》字节流读取文字字节数据后,不直接操作而是先查指定的编码表。获取对应的文字。再对这个文字进行操作。简单说:字符流=字节流+编码表
--字节流的两个顶层父类:1.InputStream 2.OutputStream
--字符流的两个顶层父类:1.Reader 2.Writer
--字符流:

》》要操作文字数据,优先考虑字符流

》》而且要将数据从内存写到硬盘上,要使用字符流中的输出流。Writer

-操作文件的关键字为FileWriter,用于写入数据流。具体格式:FileWriter fw=new FileWriter(“demo.txt”,true);这是目标文件名,创建对象时会抛出个异常IOexception,这是因为文件名或许没有正确的路径,会不安全。如果路径文件不存在,则自动创建,如果存在,则会覆盖

小细节:在java里实现换行操作可以用\r,或者用LINE_SEPARATOR创建变量,调用System方法

此处代码

public class IOExceptionDemo {

    private static final String LINE_SEPARATOR = System.lineSeparator();

    public static void main(String[] args) {

        FileWriter fw = null;
        try {

            fw = new FileWriter("demo.txt", true);

            fw.write("abcde" + LINE_SEPARATOR + "hahaha");

        } catch (IOException e) {
            System.out.println(e.toString());
        } finally {
            if (fw != null)
                try {
                    fw.close();
                } catch (IOException e) {

                    throw new RuntimeException("关闭失败");
                }
        }
    }

}

这是重点,FileWriter处理异常的方式!!很重要

读取字符数据的关键字FileReader,具体格式 FileReader fr=new FileReader(“demo.txt”);必须保证文件是存在的,再调用read方法读取

read读取方法有两种方式:

public class Test11 {

    public static void main(String[] args) throws IOException {
        
        FileReader fr=new FileReader("demo.text");
        
        int ch=fr.read();
        
        System.out.println(ch);
        
        fr.close();
    }

}

这是方式一,挨个字符读取文件内的字符

public class Test11 {

    public static void main(String[] args) throws IOException {
        
        FileReader fr=new FileReader("demo.text");
        
        char[] buf=new char[3];
        int num=fr.read(buf);//将读取到的字符存储到数组中
        System.out.println(num+"  "+buf.toString());
        
        int num1=fr.read(buf);//将读取到的字符存储到数组中
        System.out.println(num+"  "+buf.toString());

        int num2=fr.read(buf);//将读取到的字符存储到数组中
        System.out.println(num+"  "+buf.toString());
    }

}

这是方式二,

两者的区别是方式2可以一次读取多个,方式1读取1个字符。

方式2有个细节就是当数组定义为3个时,每次重新读取的时候都放在同一个数组中,所以要覆盖先前读取的数据,然后输出的结果会覆盖,这个要注意!!!!

在这再说说复制的实现过程:

原理:读取c盘文件中的数据,然后再写入d盘文件中,连读带写

5.流按流向分为:输入流,输出流

java基础学习笔记之IO流

标签:

原文地址:http://www.cnblogs.com/java-jc921027/p/4623193.html

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