手机版

百科生活 投稿

不可同世而立的立是什么意思,简单易懂讲IO

百科 2026-02-20 05:35:14 投稿 阅读:9073次

关于【不可同世而立的立是什么意思】,今天小编给您分享一下,如果对您有所帮助别忘了关注本站哦。

  • 内容导航:
  • 1、简单易懂讲IO
  • 2、不可同世而立的立是什么意思

1、简单易懂讲IO

流式 IO 是传统 IO,通过构造输入输出流,讲信息从一个地方读取,输出到另一个地方。常见的有读取文件以及写入文件。

基本 API

流失 IO 基本可以分为两个门派,一个以InputStream 和 OutputStream 为代表的老牌 IO,一个以 Reader 和 Writer 为代表的新派 IO。

这里仅仅展示最常用 API,其余 API 可以查阅 jdk API

不可同世而立的立是什么意思,简单易懂讲IO

输入

基本输入

不可同世而立的立是什么意思,简单易懂讲IO

装饰器输入

基本输入中的流对象,都可以作为装饰器对象的构造器参数

不可同世而立的立是什么意思,简单易懂讲IO

输出

基本输出

不可同世而立的立是什么意思,简单易懂讲IO

装饰器输出

不可同世而立的立是什么意思,简单易懂讲IO

常见用法

读取文件

使用 FileInputStream 读取

下面例子将输入流放入 try-with-resource 块中,以实现资源的自动关闭,本文下面例子都将采用这种形式。

这里可以看到,是一个字节一个字节的读,所以要将其转为 char 才能正常展示,否则展示的都是字节。 由于 InputStream 是字节流,因此,这里读取到的中文展示乱码。

public class Read { public static void fileInputStream() { try ( FileInputStream input = new FileInputStream("Read.java") ) { int n = 0; while (n != -1) { n = input.read(); char c = (char) n; System.out.print(c); } } catch (Exception e) { } } public static void main(String[] args) { Read.fileInputStream(); }}

输出:

package cyrus.file_io.iostream;import java.io.FileInputStream;public class Read { public static void fileInputStream() { try ( FileInputStream input = new FileInputStream("Read.java") ) { int n = 0; while (n != -1) { n = input.read(); char c = (char) n; System.out.print(c); } } catch (Exception e) { } } public static void main(String[] args) { Read.fileInputStream(); }}

使用 BufferedInputStream 装饰器读取

以下例子使用 FileInputStream 构造一个 BufferedInputStream 装饰器,该适配器的主要作用是会将读取到的内容填充进缓冲区,其余用法和 FileInputStream 一样。InputStream 是字节流,因此,这里读取到的中文展示乱码。

public class Read { public static void fileInputStreamWithBuffer() { try ( BufferedInputStream input = new BufferedInputStream(new FileInputStream("Read.java")) ) { int n = 0; while (n != -1) { n = input.read(); char c = (char) n; System.out.print(c); } } catch (Exception e) { } } public static void main(String[] args) { Read.fileInputStreamWithBuffer(); }}

输出:

package cyrus.file_io.iostream;import java.io.BufferedInputStream;import java.io.FileInputStream;public class Read { public static void fileInputStreamWithBuffer() { try ( BufferedInputStream input = new BufferedInputStream(new FileInputStream("Read.java")) ) { int n = 0; while (n != -1) { n = input.read(); char c = (char) n; System.out.print(c); } } catch (Exception e) { } } public static void main(String[] args) { Read.fileInputStreamWithBuffer(); }}

使用 FileReader 进行读取

使用 FileReader 直接读取,这里 Reader 支持 Unicode 编码,因此中文不会乱码,正常显示

public class Read { public static void fileReader() { try ( FileReader reader = new FileReader("Read.java") ) { int n = 0; while (n != -1) { n = reader.read(); char c = (char) n; System.out.print(c); } } catch (Exception e) { } } public static void main(String[] args) { Read.fileReader(); }}

输出:

package cyrus.file_io.iostream;import java.io.BufferedInputStream;import java.io.FileInputStream;import java.io.FileReader;public class Read { public static void fileReader() { try ( FileReader reader = new FileReader("Read.java") ) { int n = 0; while (n != -1) { n = reader.read(); char c = (char) n; System.out.print(c); } } catch (Exception e) { } } public static void main(String[] args) { Read.fileReader(); }}

使用 BufferedReader 装饰器读取

这里使用 FileReader 构造一个 BufferedReader 装饰器,BufferedReader 的主要作用是会将读取到的内容填入缓冲区,并且 BufferedReader 的 lines() 方法将返回一个 stream 流,操作更方便。

public class Read { public static void fileReaderWithBuffer() { try (BufferedReader reader = new BufferedReader(new FileReader("Read.java"))) { reader.lines().forEach(System.out::println); } catch (Exception e) { } } public static void main(String[] args) { Read.fileReaderWithBuffer(); }}

输出:

package cyrus.file_io.iostream;import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.FileInputStream;import java.io.FileReader;public class Read { public static void fileReaderWithBuffer() { try (BufferedReader reader = new BufferedReader(new FileReader("Read.java"))) { reader.lines().forEach(System.out::println); } catch (Exception e) { } } public static void main(String[] args) { Read.fileReaderWithBuffer(); }}

使用 DataInputStream 适配器读取字符串

这里 buildString() 方法读取当前文件,将其拼装为字符串输出,ByteArrayInputStream 读取该字符串的 byte 数组,然后转化为 DataInputStream 适配器进行读取字符串内容。

DataInputStream 主要用于读取基本数据类型

public class Read { public static void dataInputStream() { try ( DataInputStream inputStream = new DataInputStream(new ByteArrayInputStream(buildString().getBytes())) ) { while (inputStream.available() != 0) { System.out.print((char) inputStream.readByte()); } } catch (Exception e) { } } public static String buildString() { try (BufferedReader reader = new BufferedReader(new FileReader("Read.java"))) { return reader.lines().collect(Collectors.joining("\n")); } catch (Exception e) { } return "ok"; } public static void main(String[] args) { Read.dataInputStream(); }}

写入文件

使用 FileOutputStream 写入

这里直接使用 FileOutputStream 读取 buildString() 方法构造的字符串并将其写入 Read.txt 文件

public class Read { public static void fileOutputStream() { try ( FileOutputStream output = new FileOutputStream("Read.txt") ) { output.write(buildString().getBytes()); } catch (Exception e) { } } public static String buildString() { try (BufferedReader reader = new BufferedReader(new FileReader("Read.java"))) { return reader.lines().collect(Collectors.joining("\n")); } catch (Exception e) { } return "ok"; } public static void main(String[] args) { Read.fileOutputStream(); }}

输出:实例截图一部分

不可同世而立的立是什么意思,简单易懂讲IO

使用 BufferedOutputStream 适配器写入

这里使用 FileOutputStream 构造一个 BufferedOutputStream 适配器,BufferedOutputStream 会使用到缓冲区,加快读取写入速度。

public class Read { public static void fileOutputStreamWithBuffer() { try ( BufferedOutputStream output = new BufferedOutputStream(new FileOutputStream("Read.txt")); ) { output.write(buildString().getBytes()); } catch (Exception e) { } } public static String buildString() { try (BufferedReader reader = new BufferedReader(new FileReader("Read.java"))) { return reader.lines().collect(Collectors.joining("\n")); } catch (Exception e) { } return "ok"; } public static void main(String[] args) { Read.fileOutputStreamWithBuffer(); }}

后面就不展示输出了,所有的输出都是输出到当前工作目录的Read.txt文件夹下,并且文件内容都是当前 .java 文件的内容

2、不可同世而立的立是什么意思

不可同世而立”的立”指的意思是:生存。

不可同世而立”的不可能同时存在于这个世界上。

不可同世而立”的出处:

出自战国晚期韩非子《矛与盾》。

相关原文:

楚人有鬻盾与矛者,誉之曰:吾盾之坚,物莫能陷也。”又誉其矛曰:吾矛之利,于物无不陷也。”或曰:以子之矛,陷子之盾,何如?”其人弗能应也。夫不可陷之盾与无不陷之矛,不可同世而立。

相关译文:

有一个楚国人,既卖盾又卖矛。他夸耀自己的盾,说:我的盾坚固无比,没有什么东西能够穿透它。”又夸耀自己的矛,说:我的矛锋利极了,任何坚固的东西都穿得透。”有人问他:如果用您的矛刺您的盾,结果会怎么样呢?”那人张口结舌,一句话也回答不上来。什么都不能刺穿的盾与什么都能刺穿的矛,不可能同时存在于这个世界上。

相关注释:

矛:古代用来刺杀敌人的长柄兵器,矛的基本形制有狭叶、阔叶、长叶、叶刃带系和凹口骹式等。

盾:盾牌,古代作战时遮挡刀剑用。

誉:赞誉,夸耀。

曰:说,讲。

吾:我。

陷:穿透、刺穿的意思 。

或:有人。

以:使用;用。

子:您,对人的尊称。

何如:怎么样。

应:回答。

利:锋利,锐利。

其:助词。这里指那个卖矛和盾的人。

弗能:不能。

之:的。

鬻(yù):卖。

者:……的人。

莫:没有什么。

夫:用在首句,引起议论。

相关赏析:

《矛与盾》出自韩非子著作,说的是一个人同时夸耀自己所卖的矛和盾,因自相抵触而不能自圆其说,告诫人们说话、办事要实事求是。常用来讽刺那些言过其实,自相矛盾的人(或现象)。《矛与盾》的寓意是说话办事要一致,不能违背了事物的客观规律,自己也说服不了自己;也比喻自己说话做事前后矛盾或抵触。

这就是关于《不可同世而立的立是什么意思,简单易懂讲IO》的所有内容,希望对您能有所帮助!

本文链接:https://bk.89qw.com/a-677406

最近发表
网站分类