网站首页 极客学院 视频课堂 极客论坛 下载专区 行业新闻 欢迎光临极客研究院,今天是2019-08-24 星期六
会员面板
帐号:
密码:
验证码:
极客学院
教程搜索
输入要搜索的内容:

下载专区
精品教程
   网站首页 > PC开发 > JAVA开发 > 金极客JAVA学堂03:Java的文件操作:读取,写入,追加

金极客JAVA学堂03:Java的文件操作:读取,写入,追加

使用BufferedOutputStream写文件

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class STU {
    public void write_file() throws IOException   //写文件,读写文件必须抛出异常,否则有异常时(如:路径不存在)整个系统就崩溃了
    {
        BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream("d:\\a.txt"));  //如果文件存在即覆盖,不存在即自动创建。

        String s = "I am a boy";
        byte b[] = s.getBytes();
        out.write(b, 0, b.length);
        out.flush();
        out.close();
    }
    public void read_file() throws IOException   //读文件内容
    {
        String path="d:\\a.txt";
        BufferedInputStream in = new BufferedInputStream(new FileInputStream(path));
        byte[] bytes = new byte[2048];  //定义一个byte数组,指定每次读取多少个字节
        int n = -1;
        while ((n = in.read(bytes,0,bytes.length)) != -1) {      //如果结果为-1,说明文件已读完,循环退出
                String str = new String(bytes,0,n,"GBK");
                System.out.println(str);
        }
        in.close();
    }
}

在写文件时,如果是想往文件未尾追加内容,而不是覆盖,即在定义FileOutputStream时加多一个参数true

 BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream("d:\\a.txt",true)); //这样就成了追加的效果

如果需要按行读取,可以像下面这样

public void read_line()  throws IOException
{
        String path="d:\\2.txt";
        BufferedReader br = new BufferedReader(new FileReader(path));
        String str = null;
        while((str = br.readLine()) != null) {   
              System.out.println(str);
        }
}

JAVA的文件输入输出流的基础必须打好,不单单是应用于文件读写。以后学习socket,蓝牙通信,获取网页内容等,都是使用输入输出流对数据进行操作的。

输入输出流常常用到以下对象:
InputStream
OutputStram
BufferedInputStream
BufferedOutputStream
DataOutStream  //这个的特点是可以writeBytes直接写String,不用先将String转成byte[]再write
DataInStream
BufferedReader
FileReader
上面几个对象都应该弄清楚用法,以后很多场合会应用到

  相关文章
本文标题:金极客JAVA学堂03:Java的文件操作:读取,写入,追加
对本文有疑问?现在就进入论坛提问>>
 
粤ICP备18090445号