首页 > 编程语言 >Java流的概念及API

Java流的概念及API

时间:2024-07-21 23:26:12浏览次数:14  
标签:Java file 概念 API bw File catch new null

流的概念

 流(Stream)的概念代表的是程序中数据的流通,数据流是一串连续不断的数据的集合。在Java程序中,对于数据的输入/输出操作是以流(Stream)的方式进行的。可以把流分为输入流和输出流两种。程序从输入流读取数据,向输出流写入数据。

Java中的流可以按如下方式分类:

  • 按流的方向不同分为:输入流、输出流 
  • 按处理数据的单位不同分为:字节流、字符流 
  • 按功能不同分为:节点流、处理流 

 InputStream字节输入流的层次结构图和常用用法

常用方法

 OutputStream字节输出流的层次结构图与常用方法

层次结构

常用方法

字符流应用

读字符文件

public class Test{
    @Test
    public void test07() throws IOException {
        //文本文件的编码方式改为utf-8
        // BufferedReader(Reader in) Reader我们选的是FileReader--->FileReader(File
        // file)
        File file = new File("d:/java24/text01.txt");
        FileReader fr = new FileReader(file);
        // 理解为是一个工具类,他专门用来读文本文件内容
        BufferedReader br = new BufferedReader(fr);
        while(true) {
            String str = br.readLine();// 一次读取一行文本
            if (str != null) {
                System.out.println(str);
            } else {
                break;
            }
        }
    }
}

 写字符文件

public class Test{
    @Test
    public void test08() throws IOException  {
        //确认文件是utf-8编码
        File file=new File("d:/java24/text02.txt");
        FileWriter fileWriter=null;
        //第一个参数是为是否append
        BufferedWriter bw=null;
        try {
            fileWriter = new FileWriter(file,true);//第二个参数是表示是否向文件中追加内容
            bw=new BufferedWriter(fileWriter);
            bw.write("问:没声音吗1111111111");//写文本
            bw.newLine();//换行
            //bw.flush();//冲下去
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally{		//记着关闭流
            			//如果调用了关闭流的方法,就不用手动调bw.flush()
            bw.close();
            fileWriter.close();
        }
    }
}

字节流应用 

文本文件拷贝

//字节流拷贝
@Test
    public void test07(){
    //FileInputStream BufferedInputStream
    //FileOutputStream BufferedOutputStream
    File file=new File("E:" + File.separator + "java6" + File.separator + "filestudy", "01.png");
    FileInputStream in=null;
    BufferedInputStream bis=null;

    File file2=new File("E:" + File.separator + "java6" + File.separator + "filestudy", "10.png");
    FileOutputStream out=null;
    BufferedOutputStream bos=null;
    try {
        in=new FileInputStream(file);
        bis=new BufferedInputStream(in);
        out = new FileOutputStream(file2);
        bos=new BufferedOutputStream(out);
        //读取到的字节的长度
        int b;
        //bis.read() 每次读取到的字节数,注意此处给b重新赋值 ,否则死循环
        while((b=bis.read())!=-1){
            //把b长度的字节写入到bos里
            bos.write(b);
        }
    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }finally{
        try {
            bos.close();
            out.close();
            bis.close();
            in.close();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

标签:Java,file,概念,API,bw,File,catch,new,null
From: https://blog.csdn.net/m0_63227888/article/details/140535340

相关文章

  • java面向对象进阶篇--《继承》(万字总结,建议收藏)
    一、前言java部分连载开始,继续开始我们的java篇,前几天一直在调节web项目,刷了点力扣的题,导致java篇拉下了点。希望大家支持一下作者,制作不易。支持一下吧(#^.^#)---------------------------------------->点我❥(^_-) 二、java继承的概念和特点Java中的继承结构指的是通......
  • [Java基础]ArrayList
    ArrayListArrayList是List接口的实现类,它是支持根据需要而动态增长的数组。java中标准数组是定长的,在数组被创建之后,它们不能被加长或缩短。这就意味着在创建数组时需要知道数组的所需长度,但有时我们需要动态程序中获取数组长度。ArrayList就是为此而生的,但是它不是线程安全的,外......
  • C++标准模板(STL)- 概念库 (C++20) - 指定一个类型派生自另一类型 - (std::derived_from)
    概念库提供基础语言概念的定义,它们能用于进行模板实参的编译时校验,以及基于类型属性的函数派发。这些概念在程序中提供等式推理的基础。标准库中的大多数概念一同加上了语法及语义要求。通常,编译器只能检查语法要求。若在使用点语义要求未得到满足,则程序为病式,不要求诊断。......
  • JavaWeb MyBatis案例
    JAVAWEBMyBatis视频学习笔记MyBatis案例1环境准备1.1数据库准备1.2准备一个Brand实体类1.3准备测试用例1.4安装MyBatisX插件2编写接口2.1编写查询所有2.1.1编写Mapper接口2.1.2编写SQL映射文件2.1.3编写测试语句完成测试2.1.4BugFix2.2查看详情2.2.1编......
  • Java基础06:变量、常量、作用域
    1.变量Java是一种强类型语言,每个变量都必须声明其类型。Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。变量在使用前必须对其声明,只有在变量声明以后,才能为其分配相应长度的存储单元,声明格式为:typevarName=value,varName2=value2;//数据类型变......
  • java入门—JDK下载、环境配置、IDEA开发工具使用
    JavaSE入门—初识Java、JDK开发环境下载、Path环境配置、IDEA开发工具下载、HelloWorld详解1.Java概述1.1Java发展概述1.2Java语言特点及应用1.3Java技术体系2.Java的开发环境(JDK)搭建2.1JDK的下载2.2JDK与JRE3.Java环境配置3.1path、JAVA_HOME环境变量配......
  • Java基本语法篇 [2](运算符与键盘输入流程详解)
    ......
  • 计算机Java项目|基于SpringBoot的高校办公室行政事务管理系统
    作者主页:编程指南针作者简介:Java领域优质创作者、CSDN博客专家、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、多年校企合作经验,被多个学校常年聘为校外企业导师,指导学生毕业设计并参与学生毕业答辩指导,有较为丰富的相关经验。期待与......
  • Java JVM——13. 垃圾回收相关算法
    1.生存还是死亡?在堆里存放着几乎所有的Java对象实例,在GC执行垃圾回收之前,首先需要区分出内存中哪些是存活对象,哪些是已经死亡的对象。只有被标记为己经死亡的对象,GC才会在执行垃圾回收时,释放掉其所占用的内存空间,因此这个过程我们称为垃圾标记阶段。那么在JVM中......
  • javascript中常规操作节点的方法
    JavaScript常用操作DOM节点的方法包括获取节点、创建节点、添加节点、删除节点、替换节点等。1.获取节点(1)通过ID获取使用document.getElementById(“元素ID”)方法,通过元素的ID获取单个元素。这是最常用的方法之一,因为ID在页面中是唯一的,可以直接定位到具体元素。<d......