zoukankan      html  css  js  c++  java
  • 字节流与字符流(FileInputStream类和FileOutputStream类)

    FileInputStream类和FileOutputStream类中,第一个类的源端和第二个类的目的端都是磁盘文件,它们的构造方法允许通过文件的路径名来构造相应的流。例如:

    FileInputSteam infile=new FileInputStream("myfile.dat");

    FileOutputStream outfile=new FileOutputStream("results.dat");

    构造FileOutputStream对象时,对应的文件必须存在并且可读的,而构造FileOutputStream对象时,如输出文件已存在,则必须是可覆盖的。

    1:FileOutputStream 类

    如果用户的文件读取需求比较简单,那么用户可以使用FileInputStream类,该类是从InputStream类中派生出来的简单的输入类,该类的所有方法都是从InputStream类继承来的,使用文件输入流读取文件。

    示例代码如下:

    importjava.io.FileInputStream;
    importjava.io.IOException;

    public class ReadFileDemo {
    public static void main(String []args){
    try{
    //创建文件的输入流对象
    FileInputStream in=new FileInputStream("TestFile.txt");
    Int n=512;//设定读取的字节数
    Byte buffer[]=new byte[n];//读取输入流
    //读取n个字节,放置到以下标0开始字节数组bffer中,返回值实际读取的字节的数量
    while((in.read(buffer,0,n)!=-1)&&(n>0)){
    System.out.print(new String(buffer));
    }
    System.out.println();
    in.close();//关闭流
    }
    catch(IOExceptionioe){
    System.out.println(ioe);
    }
    catch(Exceptione){
    System.out.println(e);
    }
    }
    }

    本例以FileInputStream的read(buffer)方法,每次从源文件TestFile.txt中读取512B,存储在缓冲区buffer中,再将以buffer中的值构造的字符串newString(buffer)显示在屏幕上。使用文件输入流构造器建立通往文件的输入流时,可能会出现错误(也被称为异常,如要打开的文件可能不存在)。当出现I/O错误时,java生成一个出错信号,它使用一个IOException对象来表示这个出错信号。程序必须使用一个try-catch块检测并处理这个异常。

    2:FileOutputStream类

    FileOutputStream提供了基本文件写入能力。除了从OutputStream类继承来的方法外,FileOutputStream类还有以下两个构造器:

    FileOutputStream(Stringname).

    FileOutputStream(Filefile).

    第一个构造器使用给定的文件名name创建一个FileOutputStream对象。第二个构造器使用File创建FileOutputStream对象。该类可以使用write方法把字节发送给输出流。使用文件输出写入文件。

    示例代码如下:

    import java.io.FileOutputStream;
    import java.io.IOException;

    public class WriteFileDemo {
    try{
    System.out.print("文件要输入的内容");
    Int count,n=512;
    byte[ ] buffer=new byte[n];//定义存放读入信息的字节数组
    count=System.in.read(buffer);//读取标准输入流
    //创建文件输出流对象
    FileOutputStream os=new FileOutputStream("WriteFile.txt");
    //把字节数组buffer中的下标0开始,长度为count的字节写入流中
    os.writer(buffer,0,count);
    os.close();
    System.out.println("已保存到WriterFile.txt!");
    }
    catch(IOExceptionioe){ //捕获IOExpection异常
    System.out.println("ioe"); //输出异常信息
    }
    catch(Exceptione){
    System.out.println(e);



    }

    }

    }

    用System.in.read(buffer)从键盘输入一行字符,存储在缓冲区中的buffer中,再以FileOutputStream的write(buffer)方法,将buffer中的内容写到文件WriteFile.txt中。这个程序中使用”System.on.read(buffer);“语句时,程序会暂停,等待用户输入内容。用户输入的内容会保存在字节数组buffer中,并返回读入的内容的长度保存到变量count中。因为对文件的读/写有可能发生I/O异常,所以在程序中要处理IOException异常,编译并运行此程序,在同一目录下会提示输入要保存文件的内容。输入一段话,按回车键确认,这时会在目录中生成一个名叫WriterFile.txt的文本文件。打开这个文本文件,会看到刚刚输入的那段话。

  • 相关阅读:
    Android 4.4 通过源码进行 root 操作
    Android4.4 找不到内部存储空间
    极客时间《从零开始学大数据》学习总结
    C 语言实现 unix 时间戳转换成时间字符串
    数据库设计中各种键的含义
    Sqoop 快速入门
    Intelij idea新窗口打开项目设置
    安装配置Apache2.4和php7.0
    如何让 linux unzip 命令 不输出结果
    允许远程用户登录访问mysql的方法
  • 原文地址:https://www.cnblogs.com/Angella/p/6068558.html
Copyright © 2011-2022 走看看