首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java进阶-IO(1)

(可类比水管里水的流动) 输入:将数据从各种输入设备(包括文件、键盘等)中读取到内存中 输出:将数据写入到各种输出设备(比如文件、显示器、磁盘等) 流相关的类都封装在 java.io 包中,且每个数据流都是一个对象...:处理设备间数据传输问题 将数据保存到文本文件和二进制文件中, 以达到永久保存数据的要求。...Java 中的字符是 Unicode 编码(双字节),而 InputerStream 是用来处理单字节的,在处理字符文本时不是很方便。...(String name):创建文件输出流以指定的名称写入文件 使用字节输出流写数据的步骤:(创建对象–>写数据–>释放资源) 1、创建字节输出流对象(做了3件事情) - 调用系统功能创建了文件 -...BufferedInputStream:创建BufferedInputStream将创建一个内部缓冲区数组。当从流中读取或跳过字节时内部缓冲区将根据需要从所包含的输入流中重新填充,一次很多字节。

17421

Java输入输出流详解

Java语言的输入输出功能是十分强大而灵活的,美中不足的是看上去输入输出的代码并不是很简洁,因为你往往需要包装许多不同的对象。...java语言的输入输出功能是十分强大而灵活的,美中不足的是看上去输入输出的代码并不是很简洁,因为你往往需要包装许多不同的对象。...在Java的IO中,所有的stream(包括Inputstream和Out stream)都包括两种类型:   (1)字节流   表示以字节为单位从stream中读取或往stream中写入信息,即io包中的...通常用来读取二进制数据,如图象和声音。   (2)字符流   以Unicode字符为导向的stream,表示以Unicode字符为单位从stream中读取或往stream中写入信息。   ...而高层流不是从输入设备读取,而是从其他流读取。同样高层输出流也不是写入输出设备,而是写入其他流。

1.2K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    java 输入输出(学习笔记)

    其中字节流以字节为单位来处理输入、输出操作,而字符流则以字符来处理输入、输出操作。...int read(byte[] b,int off,int len):从输入流中最多读取len个字节的数据,并将其存储在数组b中,放入数组b时,并不是从起点开始而是从off位置开始。...实际识别处理流非常简单,只要流的构造器参数不是一个物理节点,而是已存在的流,那么这种流就一定是处理流;而所有节点流都是直接以物理IO节点作为构造器参数的。...除此之外,创建该对象时还需要一个mode参数,用于指定访问模式,mode参数有四个值: “r” 以只读方式打开指定文件 “rw” 以读写方式打开,如果文件不存在,则尝试创建 “rws” 以读写方式打开,...Buffer可以被理解为容器,它的本质是一个数组,发送到Channel中的所有对象都必须先被放到Buffer中,而从Channel中读取的数据也必须先放到Buffer中。

    1.1K10

    Java难点重构-IO

    中的数据时按照那种方式编码的,而不是最后产生的 String 是什么编码方式,换句话说,是让系统吧 bytes 中的数据由 encoding 编码方式转换成 unicode 编码。...且File对象必须为路径而不是文件。只会创建最后一级目录,如果上级目录不存在就抛异常。 boolean mkdir(); //创建一个File对象所对应的目录,成功返回true,否则false。...且File对象必须为路径而不是文件。...输出是时从程序传向数据源,而数据源可以是内存,文件,网络或程序等。 IO流的分类 输入流和输出流 输入流与输出流是以 内存的角度来考虑。 输入流:只能从中读取数据,而不能向其写入数据。...int read(byte[] buffer) ; //读取length个字节并存储到一个字节数组buffer,从off位置开始存,最多len, 返回实际读取的字节数,如果读取前以到输入流的末尾返回-

    58730

    JAVA的IO流之字符流

    当谈到字符流Reader和Writer时,我们通常指的是字符输入流和字符输出流,它们是用于读取和写入字符数据的Java I/O类。 Reader类是用于从字符流中读取字符数据的抽象类。...在创建字符流对象时,可以指定字符编码或使用系统默认编码。 异常处理:字符流在读取和写入过程中可能会抛出异常,如文件不存在、读取错误等。...FileReader创建一个读取文件的字符流,Writer使用FileWriter创建一个写入文件的字符流。...它的主要作用是确保数据及时送达目标设备,而不是暂存在内存中等待进一步的写入操作。 在调用flush()方法后,输出流可以继续写入数据,同时将已有的数据写入底层设备。...然后,创建一个大小为1024的字符缓冲区。在循环中,通过read()方法从源文件中读取字符数据到缓冲区,读取的字符数保存在charactersRead变量中。

    8810

    Java Review(三十六、IO)

    其中字节流以字节为单位来处理输入、 输出操作, 而字符流则以字符来处理输入、 输出操作。 File 类 Java的标准库java.io提供了File对象来操作文件和目录。...调用该方法时 Hie 对象必须对应一个路径, 而不是一个文件。 String[] list(): 列出 File 对象的所有子文件名和路径名, 返回 String 数组。...输入流和输出流 按照流的流向来分, 可以分为输入流和输出流: 输入流: 只能从中读取数据, 而不能向其写入数据。 输出流: 只能向其写入数据, 而不能从中读取数据。...int read(byte[]b,int off,int len): 从输入流中最多读取 len 个字节的数据, 并将其存储在数组 b中, 放入数组 b 中时, 并不是从数组起点幵始, 而是从 uff...int read(char[]cbuf,int off,int len): 从输入流中最多读取 len 个字符的数据, 并将其存储在字符数组 cbuf 中, 放入数组 cbuf 中时, 并不是从数组起点开始

    88030

    庖丁解牛:NIO核心概念与机制详解

    流与块的比较 原来的 I/O 库(在 java.io.*中) 与 NIO 最重要的区别是数据打包和传输的方式。正如前面提到的,原来的 I/O 以流的方式处理数据,而 NIO 以块的方式处理数据。...Demo : 从文件中读取 从一个文件中读取一些数据。如果使用原来的 I/O,那么我们只需创建一个 FileInputStream 并从它那里读取。...在 NIO 系统中,任何时候执行一个读操作,都是从通道中读取,但不是直接从通道读取。因为所有数据最终都驻留在缓冲区中,所以您是从通道读到缓冲区中。...因此读取文件涉及三个步骤: (1) 从 FileInputStream 获取 Channel (2) 创建 Buffer (3) 将数据从 Channel 读到 Buffer 中 1....Demo : 写入文件 1. 从 FileOutputStream 获取一个通道 在 NIO 中写入文件类似于从文件中读取。

    24450

    Stream 流操作

    流涉及三个基本操作: 可以读取流。读取是从流到数据结构(如字节数组)的数据传输。 可以写入流。写入是从数据结构到流的数据传输。 流可以支持查找。查找是对流内的当前位置进行查询和修改。...内存流可降低应用程序中对临时缓冲区和临时文件的需要。 用无符号字节数组创建的内存流提供无法调整大小的数据流。...使用这些派生类可打开一个文本文件以读取指定范围的字符,或基于现有的流创建一个读取器。 为了生成有用的 TextReader 的实例,派生类最低限度必须实现 Peek 和 Read 方法。...StreamReader 类 实现一个 TextReader,使其以一种特定的编码从字节流中读取字符。...当不再向现有流中追加时,编码的报头将被添加到流中。这表示使用 StreamWriter 创建的所有文本文件都将在其开头有三个字节顺序标记。

    98820

    如何用C++做文件和流

    这就需要用到 C++ 中另一个标准库 fstream,它定义了三个新的数据类型: 数据类型 描述 ofstream 该数据类型表示输出文件流,用于创建文件并向文件写入信息。...fstream 该数据类型通常表示文件流,且同时具有 ofstream 和 ifstream 两种功能,这意味着它可以创建文件,向文件写入信息,从文件读取信息。...唯一不同的是,在这里您使用的是 ofstream 或 fstream 对象,而不是 cout 对象。...读取文件 在 C++ 编程中,我们使用流提取运算符( >> )从文件读取信息,就像使用该运算符从键盘输入信息一样。...唯一不同的是,在这里您使用的是 ifstream 或 fstream 对象,而不是 cin 对象。 读取 & 写入实例 下面的 C++ 程序以读写模式打开一个文件。

    64520

    如何用C++做文件和流

    这就需要用到 C++ 中另一个标准库 fstream,它定义了三个新的数据类型: 数据类型    描述 ofstream    该数据类型表示输出文件流,用于创建文件并向文件写入信息。...fstream    该数据类型通常表示文件流,且同时具有 ofstream 和 ifstream 两种功能,这意味着它可以创建文件,向文件写入信息,从文件读取信息。...唯一不同的是,在这里您使用的是 ofstream 或 fstream 对象,而不是 cout 对象。...读取文件 在 C++ 编程中,我们使用流提取运算符( >> )从文件读取信息,就像使用该运算符从键盘输入信息一样。...唯一不同的是,在这里您使用的是 ifstream 或 fstream 对象,而不是 cin 对象。 读取 & 写入实例 下面的 C++ 程序以读写模式打开一个文件。

    68440

    面试被虐,临走时面试官甩给我这篇介绍IO的文章

    文件中的数据读取出来,所以适当了解Java的IO流是十分有必要的。...而在处理流中主要是以增加缓冲的方式来提供输入和输出的效率,且可能提供了一系列便捷的方法来一次性输入和输出大批量的内容,而不是输入/输出一个或多个“水滴”。...而且当从一个缓冲流中读取数据时,系统实际是从缓冲区中读取数据。当缓冲区空时,系统就会从相关外部设备自动读取数据,并读取尽可能多的数据填满缓冲区。...len个字符,存入字符数组c中从off开始的位置,返回实际读取的字符数 而OutputStream和Writer是所有输出流的抽象基类,本身并不能创建实例来执行输出,但是它们的方法是所有输出流都可以使用的方法...len) 将字节数组/字符数组中从off位置开始,长度为len的字节/字符输出到输出流中 因为字符流是直接以字符作为操作单位,所以在Writer中可以使用字符串来代替字符数组,即String对象可作为参数

    47330

    如何深入理解 Node.js 中的流(Streams)

    流的独特之处在于它以小的、连续的块来处理数据,而不是一次性将整个数据集加载到内存中。这种方法在处理大量数据时非常有益,因为文件大小可能超过可用内存。...流使得以较小的片段处理数据成为可能,从而可以处理更大的文件。 如上图所示,数据通常以块或连续流的形式从流中读取。从流中读取的数据块可以存储在缓冲区中。...在金融应用中,实时更新股票价格和市场数据对于做出明智的决策至关重要。流式处理使应用程序能够以较小的连续块处理数据,而不是获取和存储整个数据源,这可能是相当庞大和不切实际的。...我们将文件路径 the_princess_bride_input.txt 和编码 utf8 作为参数传递。可读流以小块方式从文件中读取数据。 我们将事件处理程序附加到可读流上以处理不同的事件。...我们使用 fs.createReadStream() 创建一个可读流,从输入文件中读取数据。使用 Transform 类创建一个转换流。

    58820

    java IO流的概念理解「建议收藏」

    常用的分类有三种: 1.2.1 按照流的流向分,可以分为输入流和输出流。 输入流: 只能从中读取数据,而不能向其写入数据。 输出流:只能向其写入数据,而不能向其读取数据。    ...注:如果从硬盘的角度来考虑,图15.1所示的数据流应该是输入流才对;但划分输入/输出流时是从程序运行所在的内存的角度来考虑的,因此如图15.1所在的流时输出流。而不是输入流。    ...操作的便捷:处理流可能提供了一系列便捷的方法来一次输入和输出大批量的内容,而不是输入/输出一个或者多个“水滴”。    ...int read(byte[] b,int off,int len); 从输入流中最多读取len个字节的数据,并将其存储在数组b中,放入数组b中时,并不是从数组起点开始,而是从off位置开始,返回实际读取的字节数...int read(char[] b,int off,int len); 从输入流中最多读取len个字符的数据,并将其存储在数组b中,放入数组b中时,并不是从数组起点开始,而是从off位置开始,返回实际读取的字符数

    49810

    IO流操作

    尝试读取 len 个字节,但读取的字节也可能小于该值。 以整数形式返回实际读取的字节数。如果因为流位于文件末尾而没有可用的字节,则返回值 -1。...存到数组cbuf中,从off处开始存储,最多读len个字符。 如果已到达流的末尾,则返回 -1。否则返回本次读取的字符数。 详解:共有的方法 int read() 读取单个字符。...将流中的数据读到数组中 4、关闭资源 写文件三步走: 1、创建流对象 2、写入数据 3、关闭资源 需要注意的是 在读取文件时,必须保证该文件已存在,否则报异常。...), 存在缓冲区中,直到缓冲区装满了,才重新从文件中读取下一个8192个字节数组。...在需要写入字符而不是写入字节的情况下,应该使用 PrintWriter 类。

    16830

    Java进阶-IO(4)

    二、动态读取文件内容 所谓动态读取,就是从文件的任意位置开始访问文件,而不是必须从文件开始位置读取到文件末尾。...从文件中读取一个带符号位的字节 char readChar() 从文件中读取一个字符 int readlnt() 从文件中读取一个带符号位的整数 long readLong() 从文件中读取一个带符号位的...以双字节的形式向文件中写入一个 char 值 void writelnt(int v) 以4字节的形式向文件中写入一个整数 writeLong(long v) 以8字节的形式向文件中写入一个...,可以从文件中读取出来,并且对它进行反序列化,即对象的类型信息、对象的数据,还有对象中的数据类型可以用来在内存中新建对象。...Properties可以保存到流中或从流中加载。

    16821

    Java中的IO流(一)字节流的常用操作

    按照流的方式进行输入输出,数据被当成无结构的字节序或字符序列。从流中取得数据的操作称为提取操作,而向流中添加数据的操作称为插入操作。用来进行输入输出操作的流就称为IO流。...数据流:DataInputStream, DataOutputStream 提供将基础数据类型写入到文件中,或者读取出来....随机访问文件的行为类似存储在文件系统中的一个大型 byte 数组。存在指向该隐含数组的光标或索引,称为文件指针;输入操作从文件指针开始读取字节,并随着对字节的读取而前移此文件指针。...如果随机访问文件以读取/写入模式创建,则输出操作也可用;输出操作从文件指针开始写入字节,并随着对字节的写入而前移此文件指针。写入隐含数组的当前末尾之后的输出操作导致该数组扩展。...该文件指针可以通过 getFilePointer 方法读取,并通过 seek 方法设置。 用途:例如迅雷的下载资源是随机下载资源的各个部分,而不是从头到尾。有些视频下载也是随机资源块下载。

    1.1K20

    java io流面试_java面试核心知识点

    在说流的类别之前,先说说什么是流,流其实就是对输入输出设备的抽象,可以把输入输出流理解为是一个通道,输入输出是相对程序而言的,如果是输出流,也就是往文件中写文件,而输入流,则是从文件中读取文件。...,有了目录文件了,是不是该往里面写点东西了,来吧~ 字节输入流 输入流,是相对于程序而言的,也就是从文件中读取文件,先看构造方法。...()); 这样一波操作之后,就可以把“hello”字符串转化为字节,然后写入到文件中,也可以读取a.txt文件中的内容,写入到b.txt文件中 InputStream in = new FileInputStream...字符输出流 直接上构造方法 字符写入的操作,还以读取a.txt文件中的内容到b.txt文件中 Reader r = new FileReader("a.txt"); Writer w = new...= null) { System.out.println(str); } 字符缓冲输出流 同样的,以读取a.txt文件的内容到b.txt为例 Reader in = new FileReader

    22230

    对文件的各种操作详解

    a = NULL;//将野指针置为空指针 } 运行没有问题,接下来就让我们看下目录中是否创建出了这么一个叫abcd.txt的文件 果然创建出来了,这不是在变魔术,也不是笔者自导自演,这是真实发生的...接着我们试一下fgetc,试着从流中拿字符出来,并赋值给程序中的一个变量,要注意的是fgetc在读取完字符后会自动地将文件的指针指向所读取字符的下一个字符 我们可以通过代码演示一下,这串代码的意义是从...1; } char ch=fgetc(pf); //从pf所指向的流(文件)中读取一个字符并赋给ch //要注意的是,当fgetc读取完字符后它会自动地将文件指针指向文件中的下一个字符 //...2.fgets和fputs 2.1认识fgets和fputs fgets的作用是从流中读取字符串,并将其存放到指定的字符数组中 它有三个参数,第一个是用来储存从流中读取到的字符串的变量,第二个参数...,这叫输出(而不是你们理解的输入),我通过读写文件中的内容,输送到程序中叫输入(而不是你们理解的输出),最后再强调一遍,输入输出是站在程序的角度看的。

    13410
    领券