当前位置: > 投稿>正文

一鸣惊人的主人公是谁,一鸣惊人的主人公是谁 齐威王(简单易懂讲IO)

02-15 互联网 未知 投稿

关于【一鸣惊人的主人公是谁】,一鸣惊人的主人公是谁 齐威王,今天乾乾小编给您分享一下,如果对您有所帮助别忘了关注本站哦。

1、一鸣惊人的主人公是谁

简要回答

一鸣惊人的主人公指的是:春秋时期楚国的国君楚庄王,一鸣惊人这个成语出自《韩非子·喻老》。

一鸣惊人常常用来形容一个人突然的发迹,在短时间内引起众人的惊奇,一鸣惊人这个成语有着一个动人的典故,究竟一鸣惊人的主人公是谁呢?下面让我们一起去了解吧。

详细内容

楚庄王熊旅统治朝政三年,不发布政令,不治理朝政。右司马伍举来到君王座驾旁,对楚庄王讲了一段微妙的谜语,说:“有一只鸟停驻在南方的阜山上,三年不展翅,不飞翔,也不鸣叫,沉默无声,这是什么鸟呢?”

楚庄王说:“三年不展翅,是为了生长羽翼;不飞翔、不鸣叫,是为了观察民众的态度。虽然还没飞,一飞必将冲天;虽然还没鸣,一鸣必会惊人。你放心,我知道了。”

经过半年,楚庄王就亲自听取朝政,被废除的有十项政令,被启用的有九项政令,诛杀大奸臣五人,提拔隐士六人,因而国家能被大力整治。带兵讨伐齐国,在徐州大败了齐军,在河雍战胜了晋军,在宋国汇合诸侯,终于使楚国称霸天下。

庄王不因为小事而妨碍好事,故此能有好的名声;没有过早显露,故此能有好的功绩。所以说:“越是大才能的人通常越晚成功,越是大的成就往往越不可估量。”

楚庄王熊旅,又称荆庄王(出土战国楚简作臧王),芈姓,熊氏,名旅(一作侣、吕),楚穆王之子,春秋时期楚国国君,楚庄王元年(前613年)到楚庄王二十三年(前591年)在位,春秋五霸之一。

2、简单易懂讲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 { /** * 使用 FileInputStream 直接读取 * 由于 InputStream 不支持 Unicode 编码,所以中文显示会乱码 */ 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 { /** * 使用 FileInputStream 直接读取 * 由于 InputStream 不支持 Unicode ç¼–ç ï¼Œæ‰€ä»¥ä¸­æ–‡æ˜¾ç¤ºä¼šä¹±ç  */ 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 { /** * 使用 FileInputStream 构造一个 BufferedInputStream 装饰器,读取,该读取会使用缓冲区 * 由于 InputStream 不支持 Unicode 编码,所以中文会乱码 */ 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 { /** * 使用 FileInputStream æž„é€ ä¸€ä¸ª BufferedInputStream 装饰器,读取,该读取会使用缓冲区 * 由于 InputStream 不支持 Unicode ç¼–ç ï¼Œæ‰€ä»¥ä¸­æ–‡ä¼šä¹±ç  */ 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 { /** * 使用 FileReader 直接读取 * 由于 Reader 支持 Unicode 编码,因此中文不会乱码,正常显示 */ 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 { /** * 使用 FileReader 直接读取 * 由于 Reader 支持 Unicode 编码,因此中文不会乱码,正常显示 */ 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 { /** * 使用 FileReader 构造一个 BufferedReader 装饰器,读取,该读取会使用缓冲区 * 由于 Reader 支持 Unicode 编码,因此中文不会乱码,正常显示 */ 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 { /** * 使用 FileReader 构造一个 BufferedReader 装饰器,读取,该读取会使用缓冲区 * 由于 Reader 支持 Unicode 编码,因此中文不会乱码,正常显示 */ 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 { /** * 使用 ByteArrayInputStream 构造 DataInputStream 装饰器,输出字符串信息 */ 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) { } } /** * 通过目前 java 文件构建一个字符串 * * @return */ 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 { /** * 使用 FileOutputStream 直接写入字符串 */ public static void fileOutputStream() { try ( FileOutputStream output = new FileOutputStream("Read.txt") ) { output.write(buildString().getBytes()); } catch (Exception e) { } } /** * 通过目前 java 文件构建一个字符串 * * @return */ 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 { /** * 使用 FileOutputStream 构造一个 BufferedOutputStream 装饰器,读取,该写入会使用缓冲区 */ public static void fileOutputStreamWithBuffer() { try ( BufferedOutputStream output = new BufferedOutputStream(new FileOutputStream("Read.txt")); ) { output.write(buildString().getBytes()); } catch (Exception e) { } } /** * 通过目前 java 文件构建一个字符串 * * @return */ 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 文件的内容

本文关键词:楚庄王一鸣惊人的故事,楚庄王一鸣惊人的故事简介,退避三舍的主人公是谁,一鸣惊人的主人公是谁 百度知道,一鸣惊人的主人公是谁的 答案。这就是关于《一鸣惊人的主人公是谁,一鸣惊人的主人公是谁 齐威王(简单易懂讲IO)》的所有内容,希望对您能有所帮助!更多的知识请继续关注《犇涌向乾》百科知识网站:http://www.029ztxx.com!

版权声明: 本站仅提供信息存储空间服务,旨在传递更多信息,不拥有所有权,不承担相关法律责任,不代表本网赞同其观点和对其真实性负责。如因作品内容、版权和其它问题需要同本网联系的,请发送邮件至 举报,一经查实,本站将立刻删除。

猜你喜欢