java中-的流-与操作

Posted 古斌的小窝

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中-的流-与操作相关的知识,希望对你有一定的参考价值。

/*

字节输出流  OutputStrema:
     * OutputStream抽象类
     * write(int b); 将指定的字节写入此流中
     * write(byte[] b); 将指定的数组  输入此流中
     * write(byte[] b , int a , int c);  将指定的数组输入此流中 从a索引开始  获取c 个
     * close(); 将此流关闭  并释放资源
     * flush(); 刷新缓冲区  并将文件写入
     * */

字节输出流的子类  FileOutputStream:

/*
 * FileOutputStream
 * 1.创建FileOutStream 的对象
 *   需要向构造方法传递文件的路径
 *   FileOutputStream ss = new FileoutputStream("d:a.txt");
 *   如果路径中的文件 不存在 会自动创建  如果存在会直接覆盖
 *   ss.write(66);  //注意他会转换成字节 然后输出
 *   ss.close();
 *   
 * */

FileOutStream  fls = new FileOutStream("c:/gubin.txt");

String fi = "姚晓曦";

byte[] bb = fi.getbytes();

fls.write(bb);

或者

String ss = "古斌啦啦啦";

file.write(ss.getbytes());

 

如下图演示:

 

输出的续写功能 与换行符:

/*
     * 输出的续写功能
     * FileOutputStream 中的参数 填写true
     * stream.write("gubin666\\r\\n".getBytes());
     * 这个里面加上换行符  \\r\\n  或者\\br
     * */
    public static void main(String[] args) throws Exception {
        System.out.println("请输入你要输入的位置");
        Scanner scanner = new Scanner(System.in);
        String lujing = scanner.next();
        FileOutputStream stream = new FileOutputStream(lujing,true);
        stream.write("咕咕咕111\\r\\n".getBytes());
        stream.write("咕咕咕222".getBytes());
    }

=======================================================================

FileInputStream 读取文件  字节流的方式:

/*

  Fls.read();这个读取的是一字节 返回结果是int

  FileInputStream 读取字节,

  FileInputStream fis = new FileInputStream("F:yxx.txt");  //这个参数填写要读取的文件的路径

  fis.read();这个方法的返回值是int 返回一个字节  会自动转换成char类型  比如 你写a 控制台就会输出  97

  int len = 0; 定义一个初始变量 用它接收 fis.read()返回的结果

  while(  ( len = fis.read())!=-1){      //因为当fis.read()执行就 读取下一个  如果没有的话 会返回-1   用这个当做结束条件

   print(len);

 }

 

  fis.close();  //记得关闭

*/

这个字节输入流只能读取字符不可读取汉字

//向系统盘创建 一个文件
        FileOutputStream fos = new FileOutputStream("F:yxx.txt");
        String in = "1234faefaeffa56";
        fos.write(in.getBytes());
        
        //读取这个文件
          //注意不可以读字符串
        FileInputStream fis = new FileInputStream("F:yxx.txt");
        int len = 0; //这个变量用于保存fis.read()返回的结果
        while((len = fis.read())!= -1){
            System.out.print((char)len);
        }
        
        
    }

 

FileInputStream 读取数据:使用字节数组读取:

FileInputStream fis = new FileInputStream("F:yxx.txt");
        int len = 0; //这个变量用于保存fis.read()返回的结果
        
        byte[] by = new byte [1024];  //定义一个字节数组
        while((len  = fis.read(by))!= -1){ //使用fis.read(数组);这个方法 存入数据
            System.out.println(new String(by,0,len));  //调用String 类的构造方法 读取by数组 从0索引开始 读取len个
        }
        fis.close();
        fos.close();

 

以上是关于java中-的流-与操作的主要内容,如果未能解决你的问题,请参考以下文章

java8中的流操作

Java 中的流

Java 中的流

java多线程java8的流操作api和fork/join框架

Java 8常用的流操作

Java集合的流Stream操作(快速筛查,统一处理)