字节流

字节输出流(OutputStream)

java.io.OutputStream 抽象类是表示字节输出流的所有类的超类,将指定的字节信息写出到目的地。
它定义了字节输出流的基本共性功能方法。

public void close()				关闭此输出流并释放与此流相关联的任何系统资源。  
public void flush()  			刷新此输出流并强制任何缓冲的输出字节被写出。  
public void write(byte[] b)		将 b.length字节从指定的字节数组写入此输出流。  
public void write(byte[] b, int off, int len)  	从指定的字节数组写入 len字节,从偏移量 off开始输出到此输出流。  
public abstract void write(int b) 		将指定的字节输出流。

常用子类
FileOutputStream	类是文件输出流,用于将数据写出到文件。

close方法,当完成流的操作时,必须调用此方法,释放系统资源。
close 方法自动完成 flush 方法操作,因此当不需要再输入时,可以不调用 flush 方法。

FileOutputStream
  • java.io.FileOutputStream 类是文件输出流,用于将数据写出到文件。
构造方法
public FileOutputStream(File file) 		创建文件输出流以写入由指定的 File对象表示的文件。
public FileOutputStream(String name) 	创建文件输出流以指定的名称写入文件。
public FileOutputStream(File file, boolean append)  创建文件输出流以写入由指定的 File对象表示的文件。
public FileOutputStream(String name, boolean append)  创建文件输出流以指定的名称写入文件。

当创建一个流对象时,必须传入一个文件路径。该路径下,如果没有这个文件,会创建该文件。如果有这个文
件,会清空这个文件的数据。

append bollean 类型数据,当 append 为 true 时表示追加数据, false 表示清空原有数据。默认为 false:
使用File对象创建流对象    
File file = new File("a.txt");
FileOutputStream fos = new FileOutputStream(file);
     
使用文件名称创建流对象
FileOutputStream fos = new FileOutputStream("b.txt");

向文件中追加数据

ileOutputStream fos = new FileOutputStream("b.txt", true);
写出字节数据
public void write(byte[] b)		将 b.length字节从指定的字节数组写入此输出流。  
public void write(byte[] b, int off, int len)  	从指定的字节数组写入 len字节,从偏移量 off开始输出到此输出流。  

public static void main(String[] args) throws IOException {
        byte[] a = "a, b, c, d".getBytes();
        FileOutputStream fos = new FileOutputStream("day21\\src\\IOTest\\a.txt");
        //写出单个字节
        fos.write(8);
        //写出字节数组
        fos.write(a);
        //写出字节数组从 off 到 len 的字节
        fos.write(a,0,2);
    }
写出换行
回车符 \r 和换行符 \n :
回车符:回到一行的开头(return)。
换行符:下一行(newline)。
系统中的换行:
Windows系统里,每行结尾是  回车+换行 ,即 \r\n ;
Unix系统里,每行结尾只有  换行 ,即 \n ;
Mac系统里,每行结尾是  回车 ,即 \r 。从 Mac OS X开始与Linux统一。

例
fos.write("\r\n".getBytes());

字节输入流(InputStream)

java.io.InputStream 抽象类是表示字节输入流的所有类的超类,可以读取字节信息到内存中。
					它定义了字节输入流的基本共性功能方法。
					
public void close()  		关闭此输入流并释放与此流相关联的任何系统资源。
public abstract int read()  从输入流读取数据的下一个字节。
public int read(byte[] b)  	从输入流中读取一些字节数,并将它们存储到字节数组 b中 。

常用子类
FileInputStream	类 文件输入流,从文件中读取字节。

close方法,当完成流的操作时,必须调用此方法,释放系统资源。
FileInputStream类
  • java.io.FileInputStream 类是文件输入流,从文件中读取字节。
FileInputStream(File file) 		通过打开与实际文件的连接来创建一个 FileInputStream 
							  	该文件由文件系统中的 File对象 file命名。
FileInputStream(String name)  	通过打开与实际文件的连接来创建一个 FileInputStream 
								该文件由文件系统中的路径名 name命名。
当你创建一个流对象时,必须传入一个文件路径。该路径下,如果没有该文件,会抛出 FileNotFoundException 。

public class FileInputStreamConstructor throws IOException{
    public static void main(String[] args) {
     // 使用File对象创建流对象    
        File file = new File("a.txt");
        FileInputStream fos = new FileInputStream(file);
     
        // 使用文件名称创建流对象
        FileInputStream fos = new FileInputStream("b.txt");
    }
}

读取字节数据
read(byte b)    每次可以读取一个字节的数据,提升为int类型,读取到文件末尾,返回 -1
read(byte[] b) 	每次读取 b 的长度个字节到数组中,返回读取到的有效字节个数,读取到末尾时,返回 -1

public static void main(String[] args) throws IOException {
        FileInputStream fis = new FileInputStream("day21\\src\\IOTest\\a.txt");
        //读取一个字节
       System.out.println((char)fis.read());
        //读取 b 的长度个字节
        byte[] b = new byte[2];
        int len;
        while (( len= fis.read(b))!=-1) {
            // 每次读取后,把数组变成字符串打印
            System.out.println(new String(b,0,len));
        }

        fis.close();
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值