字节流

IO流

…衆ロ難τιáo~ 提交于 2019-12-05 07:39:12
------------恢复内容开始------------ IO流概述 java中用于传输数据的工具。 IO流能干什么:在本地磁盘和网络上操作数据。 IO流的分类: (1)按数据流向分: ①输入流②输出流 (2)按操作方式分: ①字节流 以字节的形式操作数据 InputStream:字节输入流,以字节的形式读取数据。字节输入流的顶层抽象类 OutputStream:字节输出流,以字节的形式写出数据 ②字符流 以字符的形式操作数据 Reader :字符输入流 Writer:字符输出流 这四个类都是抽象类,在使用时要使用它们的子类 IO流体系:字符流:按字符读写数据的IO流:Reader:FileReader 普通字符输入流 BufferedReader 高效字符输入流 Writer:FileWriter 普通字符输出流 BufferedReader 高效字符输出流 字节流:InputStream:FileInputStream BufferedInputStream OutputStream:FileOutputStream BufferedOutputStream File类 一个File对象代表磁盘上的某个文件或文件夹 构造方法 : File(String pathname):根据字符串形式的路径来创建其对应的File对象 File(String parent,String

Java 常用IO流操作详解

点点圈 提交于 2019-12-04 07:57:17
1.基本概念 IO:Java对数据的操作是通过流的方式,IO流用来处理设备之间的数据传输,上传文件和下载文件,Java用于操作流的对象都在IO包中。 2.IO流的分类 图示:(主要IO流) 3.字节流 (1).字节流基类 1).InputStream InputStream:字节输入流基类,抽象类是表示字节输入流的所有类的超类。 常用方法: // 从输入流中读取数据的下一个字节 abstract int read() // 从输入流中读取一定数量的字节,并将其存储在缓冲区数组 b中 int read(byte[] b) // 将输入流中最多 len 个数据字节读入 byte 数组 int read(byte[] b, int off, int len) // 跳过和丢弃此输入流中数据的 n个字节 long skip(long n) // 关闭此输入流并释放与该流关联的所有系统资源 void close() 2).OutputStream OutputStream:字节输出流基类,抽象类是表示输出字节流的所有类的超类。 常用方法: // 将 b.length 个字节从指定的 byte 数组写入此输出流 void write(byte[] b) // 将指定 byte 数组中从偏移量 off 开始的 len 个字节写入此输出流 void write(byte[] b, int off,

Java中IO流,输入输出流概述与总结

痴心易碎 提交于 2019-12-03 22:53:50
Java中IO流,输入输出流概述与总结 总结的很粗糙,以后时间富裕了好好修改一下。 1:Java语言定义了许多类专门负责各种方式的输入或者输出,这些类都被放在java.io包中。其中, 所有输入流类都是抽象类 InputStream(字节输入流),或者抽象类Reader(字符输入流)的子类 ; 而所有输出流都是 抽象类OutputStream(字节输出流)或者Writer(字符输出流)的子类。 【首先需要明白的是:流是干什么的???(为了永久性的保存数据) 根据数据流向的不同分为输入流和输出流; 根据处理数据类型的不同分为字符流和字节流; 】 【然后需要明白的是输入模式和输出模式是谁流向谁: InputStream(字节输入流)和Reader(字符输入流)通俗的理解都是读(read)的。 OutputStream(字节输出流)和Writer(字符输出流)通俗的理解都是写(writer)的。 】 最后下面搞清楚各种流的类型的该怎么用,谁包含谁,理清思路。 2:InputStream类是字节输入流的抽象类,是所有字节输入流的父类,InputStream类具有层次结构如下图所示; 3:java中的字符是Unicode编码的,是双字节的。InputStream是用来处理字节的,在处理字符文本时很不方便。Java为字符文本的输入提供了专门的一套类Reader

JavaSE_10_IO流

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-03 02:33:17
1.1 什么是IO 把这种数据的传输,可以看做是一种数据的流动,按照流动的方向,以内存为基准,分为 输入input 和 输出output ,即流向内存是输入流,流出内存的输出流。 1.2 IO的分类 输入流 :把数据从 其他设备 上读取到 内存 中的流。 输出流 :把数据从 内存 中写出到 其他设备 上的流。 格局数据的类型分为: 字节流 和 字符流 。 字节流 :以字节为单位,读写数据的流。 字符流 :以字符为单位,读写数据的流。 1.3 顶级父类们 字节流 :字节输入流InputStream 字节输出流OutputStrem 字符流 :字符输入流 Reader 字符输出流Writer 2.1 一切皆为字节 一切文件数据(文本、图片、视频等)在存储时,都是以二进制数字的形式保存,都一个一个的字节,那么传输时一样如此。 2.2 字节输出流【OutputStream】 java.io.OutputStream 抽象类是表示字节输出流的所有类的超类,将指定的字节信息写出到目的地。它定义了字节输出流的基本共性功能方法。 public void close() :关闭此输出流并释放与此流相关联的任何系统资源。 public void flush() :刷新此输出流并强制任何缓冲的输出字节被写出。 public void write(byte[] b) :将 b

IO流

依然范特西╮ 提交于 2019-12-02 22:31:05
一、字节流 1一切皆为字节 一切文件数据(文本、图片、视频等)在储存时都是以二进制数字的形式保存的,都是一个个的字节,传输时也是如此,无论使用什么样的流对象,底层传输始终为二进制数据。 2字节输出流 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) :将指定的字节输出流。 小贴士: close方法,当完成流的操作时,必须调用此方法,释放系统资源。 3.FileOutputStream类 FileOutputStream类是OutputStream类的一个子类,文件输出流,用于将数据写出到文件。 public FileOutputStream(File file)

Java之IO流(字节流,字符流)

匿名 (未验证) 提交于 2019-12-02 21:53:52
IO流是指计算机与外部世界或者一个程序与计算机的其余部分的之间的接口。它对于任何计算机系统都非常关键, 因而所有 I/O 的主体实际上是内置在操作系统中的。单独的程序一般是让系统为它们完成大部分的工作。 在 Java 编程中,一直使用流的方式完成 I/O。所有 I/O 都被视为单个的字节的移动, 通过一个称为 Stream 的对象一次移动一个字节。流 I/O 用于与外部世界接触。它也在内部使用, 用于将对象转换为字节,然后再转换回对象。输入也叫做读取数据,输出也叫做作写出数据。 IO流是设备间的数据的传输. IO流的输入和输出(基于程序的角度,而不是基于文件的角度) 数据流向: 输入流: 文件到程序 输出流: 程序到文件 数据类型(计算机内的数据存储都是以字节的形式存储的): 字节流: 所有的文件都可以使用字节流操作 字符流: 在文本文件的读取的时候,我们需要将字节转化为字符. 几个字节表示一个字符? 不一定. 数据流向: 输入流: 输出流: 数据类型: 字节流: 字节输入流(InputStream):将内存中的数据输如入到指定的设备上 字节输出流(OutputStream):将设备上的数据输出到设备上 字符流: 字符输出流 字符输入流 FileOutputStream 构造方法(如果指定的文件不存在,则创建对象;存在,会清空文件中的数据(除非使用后两个构造方法,字符流同理)):

javaSE 缓冲流, 字节缓冲流BufferedOutputStream (提高字节写入速度)

匿名 (未验证) 提交于 2019-12-02 21:53:52
Demo.java: package cn . xxx . demo ; import java . io . BufferedOutputStream ; import java . io . FileOutputStream ; import java . io . IOException ; /* * 字节输出流的缓冲流 * java.io.BufferedOuputStream 作用: 提高原有输出流的写入效率 * BufferedOuputStream 继承 OutputStream * 方法,写入 write 字节,字节数组 * * 构造方法: * BufferedOuputStream(OuputStream out) * 可以传递任意的字节输出流, 传递的是哪个字节流,就对哪个字节流提高效率 * * FileOutputStream */ public class Demo { public static void main ( String [] args ) throws IOException { //创建字节输出流,绑定文件 //FileOutputStream fos = new FileOutputStream("c:\\buffer.txt"); //创建字节输出流缓冲流的对象,构造方法中,传递字节输出流 BufferedOutputStream

java流 IO流、输出输出流字节流、字符串、对象流

匿名 (未验证) 提交于 2019-12-02 21:53:52
IO流技术主要是解决数据存储到硬盘的操作, 一种叫做写到硬盘上 : output 一种从硬盘读取::input IO流就是操作数据的两种方式: 在我们读写数据的时候,程序是第一人称,所以写数据到硬盘,output, 读数据进来input。 输入流,InputStream == >FileInputStream package com.xingxue.io1; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; /** * 在E盘下 创建文件路径如下 E:/file/src/info.txt; * @author Administrator */ public class TestIo { public static void main (String[] args) { //文件输入流 String num = "0" ; try { // FileInputStream fis = new FileInputStream("E:/info.txt"); File file = new File( "E:/info.txt" ); FileInputStream fis = new

JAVA基础之字节流与字符流

匿名 (未验证) 提交于 2019-12-02 21:45:52
个人理解:   IO流就是将数据进行操作的方式,因为编码的不同,所以对文件的操作就产生两种。最好用字节流,为了方便看汉字等,(已经确定文字的话)可以使用字符流。每个流派也就分为输入和输出,这样就可以产生复制文件了!需要注意的是Flush() 是清空,而不是刷新啊。   一般主要用在 IO 中,即清空缓冲区数据,就是说你用读写流的时候,其实数据是先被读到了内存中,然后用数据写到文件中,当你数据读完的时候不代表你的数据已经写完了,因为还有一部分有可能会留在内存这个缓冲区中。这时候如果你调用了 close()方法关闭了读写流,那么这部分数据就会丢失,所以应该在关闭读写流之前先flush(),先清空数据。 一、IO流: 1、JAVA对数据的操作是通过流的方式,JAVA用于操作数据流的类都在IO包中; 2、IO用于在设备间进行数据传输的操作; 3、分类: ①、流向:     输入流(读取数据)     输出流(写出数据) ②、数据类型:     字节流(可以操作任何数据):         字节输入流         字节输出流     字符流:           字符输入流         字符输出流 注意:   如果没明确说明按照什么分,默认按照数据类型分;   除非文件用windows自带的记事本打开我们能够读懂,才采用字符流,否则建议使用字节流。 4、IO程序书写:   使用前

Java的IO流

匿名 (未验证) 提交于 2019-12-02 21:38:03
在Java中,把不同的输入/输出源(键盘、文件、网络连接等)中的有序数据抽象为流(stream)。 stream(流)是从起源(source)到接收(sink)的有序数据。 通过流的方式,Java可以使用相同的方式来访问、操作不同类型的输入/输出源,不管输入、输出节点是磁盘文件、网络连接,还是其他的IO设备,只要将这些节点包装成流,我们就可以使用相同的方式来进行输入、输出操作。 原本进行文件读写要用文件读写的一套方法,进行网络读写要用网络读写的一套方法.....不同类型的IO节点,用的方法体系不同,要单独写代码。 java统一了不同类型节点的IO操作,都把输入、输出节点包装成流,使用一套方法就可以进行文件读写、网络读写等不同类型节点的读写,不必单独写代码,从而简化了IO操作。 流的分类: 1、按流的方向分: 输入流:从磁盘、网络等读取到内存,只能读,不能写。 输出流:从内存写出到磁盘、网络,只能写,不能读。 2、按操作的数据单元分: 字节流:以字节为基本操作单位 字符流:以字符为基本操作单位 字节流、字符流的用法基本一样,只是操作的数据单元不同。 3、按照流的角色来分: 节点流:向某个IO设备/节点(磁盘文件、网络等)直接读写数据,也称为低级流。 处理流:用于包装一个已存在的流,通过这个已存在的流来进行读写操作,并不直接操作IO节点,也称为高级流、包装流。