字节输出流:

java.io.OutputStream :抽象类,是表示输出字节流的所有类的父类。

java.io.FileOutputStream extends OutputStream: 文件字节输出流。

  作用:把内存中的数据写入硬盘文件。

  构造方法: FileOutputStream(String name),创建一个向指定名称的文件写入数据的输出流。

       FileOutputStream(File file) ,创建一个向指定File对象的文件中写入数据的输出流。

  构造方法的作用:1、创建一个FileOutputStream对象。

           2、根据构造方法中的文件/文件路径,创建一个空文件。

           3、把FileOutputStream 对象指向该文件。

  使用步骤:1、创建FileOutputStream对象。2、write方法写数据。3、释放资源。

write方法:

public class main {
public static void main(String[] args) throws IOException {
File file=new File("C:\\Users\\天\\Desktop\\a.txt");
FileOutputStream fos=new FileOutputStream(file);
fos.write(12);
fos.close();
}
}
public class main {
public static void main(String[] args) throws IOException {
File file=new File("C:\\Users\\天\\Desktop\\a.txt");
FileOutputStream fos=new FileOutputStream(file);
byte[] bytes={65,66,67};
fos.write(bytes);
fos.close();
}
}

续写和换行写:

续写构造函数:FileOutputStream(String name / File file,boolean append)

  append: 续写开关,true   。。。false。。。

换行符号: Windows  : \r\n   fos.write("\r\n")

字节输入流:

java.io.InputStream :字节输入流,抽象类,是表示字节输入流的所有类的父类。

java.io.FileInputStream extends InputStream.把磁盘文件读入内存。

  构造方法:FileInputStream(String name)  FileInputStream(File file)

  构造方法作用:1、创建对象,2、把对象指向要操作的文件

  使用步骤:1、创建对象。2、read() 3、释放资源。

read() 后 ,指针自动指向下一字节, 结束标记为-1.

一次读取多个字节:

  int read(byte[] b) ,从输入流读取一定数量的字节,并存在缓冲区数组b中。

  返回的是实际读取到的字节数。

字节流练习:

复制文件:

public static void main(String[] args) throws IOException {
File file =new File("C:\\Users\\天\\Desktop\\a.txt");
File file1 =new File("C:\\Users\\天\\Desktop\\b.txt");
FileInputStream fis=new FileInputStream(file);
FileOutputStream fos=new FileOutputStream(file1,true);
byte[] bytes=new byte[2];
int len;
while ((len=fis.read(bytes))!=-1){
fos.write(bytes);
}
fos.close();
fis.close();
}

字符流:

读取中文字符时,由于编码问题,可能会出错,所以,Java提供专门处理文本文件的字符流类。

字符输入流:

java.io.Reader :抽象类,是所有字符输入流的父类。

java.io.FileReader extends InputStreamReader extend Reader.

FileReader: 文件字符输入流,把硬盘文件的数据以字符流的方式读入内存。

  构造方法:FileReader(String fileName / File file )

  构造方法作用:1、创建FileReader对象。2、指向要读取的文件。

字符输出流:

java.io.Writer: 抽象类, 所有字符输出流的父类。

java.io.FileWriter extends OutputStreamWriter extends Writer.

FileWriter: 文件字符输出流

  构造方法:FileWriter(String fileName / File file)

注意:使用write()时,是把数据写入内存缓冲区先,flush()或释放资源时会刷新到文件中。

flush 和 close区别:

  flush:刷新缓冲区,流对象可继续使用。close:刷缓冲区后释放资源,流对象不可使用。

字符输出流写数据的其他方法:

  void write (char[ ] c) 写入字符数组。

  abstract void write (char[ ] c, int off, int len)

  void write( String str) 写入字符串。

  void write ( String str,int off, int len ) ..

流中异常的处理:

JDK1.7 新特性:

try后可以增加个(),里面可以定义流对象,这个流对象的作用域在try中有效,try执行完后,自动释放。

 public static void main(String[] args)  {
File file =new File("C:\\Users\\天\\Desktop\\a.txt");
try (FileWriter fw=new FileWriter(file);){
fw.write(98);
fw.close();
}catch (IOException e){
System.out.println(e);
}
}

JDK9 新特性:

在try前面定义流对象, ()里引入流对象名称 ,try代码结束后,也能释放,不用写finally。

IO字节流。的更多相关文章

  1. JAVA IO 字节流与字符流

    文章出自:听云博客 题主将以三个章节的篇幅来讲解JAVA IO的内容 . 第一节JAVA IO包的框架体系和源码分析,第二节,序列化反序列化和IO的设计模块,第三节异步IO. 本文是第一节.     ...

  2. Java学习之IO字节流

    字节流分为FileInputStream 和FileOutputStream package com.io; import java.io.File; import java.io.FileInput ...

  3. Java提高篇(二):IO字节流、字符流和处理流

    在我们的Java语言当中,通常会有对文件进行读写,因此我们引入java的IO类来进行文件的读写. 一.字节流 下面是一个字节流的实例: import java.io.*; public class I ...

  4. Java学习笔记28(IO字节流)

    IO定义: 写:Output操作:将内存上的数据持久化 到设备上,这个动作称为输出: 读:Input操作:把硬盘上的东西读取到内存,这个动作称为输入:              这两种操作称为IO流 ...

  5. 14、IO (字节流、字符流)

    输入和输出 * A:输入和输出 * a: 参照物 * 到底是输入还是输出,都是以Java程序为参照 * b: Output * 把内存中的数据存储到持久化设备上这个动作称为输出(写)Output操作 ...

  6. Java IO 字节流与字符流 (五)

    Java的IO流分为字符流(Reader,Writer)和字节流(InputStream,OutputStream),字节流顾名思义字节流就是将文件的内容读取到字节数组,然后再输出到另一个文件中.而字 ...

  7. Java IO 字节流与字符流 (三)

    概述 IO流用来处理设备之间的数据传输 Java对数据的操作时通过流的方式 Java用于操作流的对象都在IO包中 流按操作的数据分为:字节流和字符流 流按流向不同分为:输入流和输出流 IO流常用基类 ...

  8. Java IO 字节流与字符流 (二)

    1. 什么是流 Java中的流是对字节序列的抽象,我们可以想象有一个水管,只不过现在流动在水管中的不再是水,而是字节序列.和水流一样,Java中的流也具有一个“流动的方向”,通常可以从中读入一个字节序 ...

  9. 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_04 IO字节流_3_字节输出流_OutputStream类&FileOutputStream

    都在IO包下 所有字节输出最顶层的父类 它是一个抽象类.abstract修饰的 一般这种类定义的都是所有字节流都可以使用公共的方法,

随机推荐

  1. MS-SQL使用xp_cmdshell命令导出数据到excel

    exec master..xp_cmdshell 'bcp "select c.Category_Title as 标题,p.Category_Title as 所属分类 from ltbl ...

  2. 浏览器默认标签样式总结及css初始化程序

    html中的大部分的标签都有一些糟糕的样式,有的是标签天然自带的,有的是浏览器默认设置的,我们在写网页时,这些默认的样式就会时不时的跳出来捣一下乱,搞得我们很是无奈.所以成手在写css样式时,一般都会 ...

  3. ASP.NET Core 身份认证 (Identity、Authentication)

    Authentication和Authorization 每每说到身份验证.认证的时候,总不免说提及一下这2个词.他们的看起来非常的相似,但实际上他们是不一样的. Authentication想要说明 ...

  4. 1. sqlmap超详细笔记+思维导图

    sqlmap思维导图: 基本操作笔记: -u #注入点 -f #指纹判别数据库类型 -b #获取数据库版本信息 -p #指定可测试的参数(?page=1&id=2 -p "page, ...

  5. 为什么ps中CPU占用率会有超出%100的现象?

    前面的关于ps中的%CPU的含义一文已经介绍了CPU占用率的含义,那么为什么有时会在ps的输出中看到CPU占用率超出%100的现象呢?我们知道在/proc目录下每个进程都会有一个以它的PID以名字的目 ...

  6. HTML5学习笔记(七)WebSocket

    WebSocket是HTML5开始提供的一种在单个 TCP 连接上进行全双工通讯的协议.在WebSocket API中,浏览器和服务器只需要做一个握手的动作 浏览器通过 JavaScript 向服务器 ...

  7. javascript不用正则验证输入的字符串是否为空(包含空格)

    在项目中需要验证输入的字符串是否为空,包括空格,不太喜欢使用正则,所以就想到了js的indexOf函数,indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置,如果要检索的字符串值没 ...

  8. PHP框架学习思路

    希望可以帮助到正在学习的PHPer

  9. 2017乌鲁木齐区域赛A(动态规划,组合数学,期望)

    #include<bits/stdc++.h>using namespace std;double c[110][110];double g[110];double dp[110][110 ...

  10. 在 windows 下搭建 IDEA + Spark 连接 Hive 的环境

    为了开发测试方便,想直接在 IDEA 里运行 Spark 程序,可以连接 Hive,需不是打好包后,放到集群上去运行.主要配置工作如下: 1. 把集群环境中的 hive-core.xml, hdfs- ...