我是靠谱客的博主 眯眯眼冰棍,最近开发中收集的这篇文章主要介绍文件的读取与写入,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、文件类的继承关系

 

二、文件读取

1.按字符读取

如果我们要取的数据基本单位是单个字符,那么用这种方法读取文件就比较适合。比如:txt文件如下,我们需要取出其中的每一个字母存入一个数组中。

利用FileReader中的read()方法。FileReader.read(char[] cbuf),参数——cbuf是目标缓冲区;返回——读取的字符串数量,如果已达到末尾则返回-1。

实现如下:

        int num=0;
        char[] buf=new char[1024];
        //打开文件
        FileReader fr = new FileReader("text.txt");
        //取出字符存到buf数组中
        while((num=fr.read(buf))!=-1) {
                        //String(char[] cbuf,a,b),从cbuf的位置a开始取出连续的b个char组成字符串
            System.out.println(new String(buf,0,num));;
        }
                //检测一下是否取到相应的数据
        for(int i=0;i<10;i++) {
            System.out.print(buf[i]+" ");
        }

2.按行读取

如果我们想要读取的是一个字符串,前面所讲的第一种方法显然是不适用的,因此我们来介绍下另一种方法——按行读取数据。我们可以看下以下文件

每一行保存一个字符串,这样我们在读取文件的时候只需要按行读取即可。

利用BufferedReader中的readLine()方法。BufferedReader.readLine(),没有参数,返回——包含该行内容的字符串,不包含任何行终止符,如果已到达流末尾,则返回 null。

        int position=0;
        String[] bufstring=new String[1024];
        //打开带读取的文件
        BufferedReader br = new BufferedReader(new FileReader("text.txt"));
        String line=null;
        while((line=br.readLine())!=null) {
            bufstring[position]=line;
            position++;
        }
        br.close();//关闭文件
        for(int i=0;i<position;i++) {
            System.out.println(bufstring[i]);
        }

3.读取带分隔符的字符串

前面介绍的第一种方法不能读取字符串,第二种方法虽然可以读取字符串,但是由于每一行只能储存一个字符串,难免会觉得有些浪费空间。因此我们就会想,有没有一种能利用分割符来分割读取字符串的方法。JAVA中好像是没有这种API,但是我们如果对第一种方法进行一些后续处理,也可以达到这种效果。比如我们要读取的文件如下:

很明显,分隔符就是中文字符“,”。我们首先把文件中的字符都读取到字符数组buf中,再遍历字符数组,每遇到一个分隔符就保存一次字符串。

代码如下:

//依次读取一个字符,读到最后没有了就返回-1。有分隔符号
        ArrayList<String>stringlist=new ArrayList();//储存待读取的字符串
        FileReader fr = new FileReader("text.txt");
        while((num=fr.read(buf))!=-1) {
            System.out.println(new String(buf,0,num));;
        }
        //对字符串进一步处理
        String temp="";
        for(int i=0;i<buf.length;i++) {
            if(buf[i]==',') {//注意文件中的分隔符是中文还是英文字符
                stringlist.add(temp);
                temp="";
            }else {
                temp+=buf[i];
            }
        }

最后

以上就是眯眯眼冰棍为你收集整理的文件的读取与写入的全部内容,希望文章能够帮你解决文件的读取与写入所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(35)

评论列表共有 0 条评论

立即
投稿
返回
顶部