关于【儿童经典故事】,今天涌涌小编给您分享一下,如果对您有所帮助别忘了关注本站哦。
内容导航:1、简单易懂讲IO2、儿童经典故事1、简单易懂讲IO
流式 IO 是传统 IO,通过构造输入输出流,讲信息从一个地方读取,输出到另一个地方。常见的有读取文件以及写入文件。
基本 API
流失 IO 基本可以分为两个门派,一个以InputStream 和 OutputStream 为代表的老牌 IO,一个以 Reader 和 Writer 为代表的新派 IO。
这里仅仅展示最常用 API,其余 API 可以查阅 jdk API
输入
基本输入
装饰器输入
基本输入中的流对象,都可以作为装饰器对象的构造器参数
输出
基本输出
装饰器输出
常见用法
读取文件
使用 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(); }}
输出:实例截图一部分
使用 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 文件的内容
2、儿童经典故事
儿童经典故事汇总5篇
很久很久以前,豹子浑身上下都是黄褐色的,根本没有什么斑点。可是,现在我们看到的金钱豹、猎豹、云豹等豹子身上都有黑黑的斑点,这是为什么呢?
原来,豹子最早的时候生活在一个大草原上。一眼望去,那个草原上几乎全都是黄褐色的:沙土是黄褐色的,岩石是黄褐色的,野草是黄褐色的,就连长颈鹿、斑马、羚羊等这些生活在草原上的动物们浑身上下也都是黄褐色的。
但是,和草原颜色最相近的,还要数豹子。豹子身上的颜色和草原的颜色简直是一模一样,所以,当豹子站在你面前的时候,如果你不仔细看,可能根本就不会发现。但是,豹子身上的这种颜色对于长颈鹿、斑马和羚羊这些动物们来说真是太糟糕了,因为,豹子最喜欢吃这些动物了。
它总是要悄悄地躲在黄褐色的大岩石或者草丛边,当那些动物们从它身边经过的时候,它就猛地扑出去,把它们吃掉。所以,草原上的动物非常怕豹子。
在这个草原上,还住着一个猎人,这个猎人浑身上下也是黄褐色的,而且,他身上的颜色和草原的颜色几乎也是一模一样的!这个猎人也像豹子一样,经常要捕捉长颈鹿、斑马和羚羊。只不过他是用弓箭,而豹子是用爪子和牙齿。
在这个草原上,几乎每天都有一只动物要被豹子或者猎人捕杀,眼看着动物越来越少了。长颈鹿、羚羊、斑马和其它动物们都非常着急,因为,谁也不知道下次被吃掉的会是谁。于是,长颈鹿召集小动物们开了一次大会,商量怎么对付猎人和豹子。
动物们从早上讨论到下午,又从下午讨论到晚上,整整讨论了一天一夜,也没有想出一个好办法。最后,它们决定所有的动物一起离开这个草原,离豹子和猎人远远的,去一个他们从来没有去过的地方。因为长颈鹿的腿最长,所以,动物们推选长颈鹿作为领路人,带领它们离开草原。
儿童经典故事汇总5篇
从前有一个猫,一条狗和一头水牛,它们共同决定要从某地搬运三辆货车到某地。它们约好各人拉一辆,同时动身,谁先到达目的地就算谁赢。不用说,对于一个猫,要拉动一辆货车,并且要拉那么长的路程,不过是一句很动听的空话罢了,所以猫并不去拉车,只是拔脚就跑,一口气就跑到目的地了,立刻宣布自己的胜利,叫道:"我第一个到达了!"
狗勉强地拉了一两步路,可是一则实在重不过,二则猫已经抢先跑前面去了,它很不甘心,所以它也就抛下了货车,飞步向前面跑去了。
水牛远远地落在后面,拉着笨重的货车,喘着气一步一步地走。等到它到达目的地,老实说,是已经很迟了:不仅最先到达的猫已经等得不耐烦,自己跑开不见啦,就是晚一步到达的狗也已经等得无聊起来,自己跑开和别的狗打架去了;水牛看看那里什么也没有,就说:"虽然它们很早就到过这里,可是它们是空手来的,后来又耐不住寂寞,空手回去了,这算得什么呢?那么,运了实在的货车到达这里来的,还得算我是第一个哩!"
不要跟说漂亮话的人竞赛,而要向老实工作的人学习。
儿童经典故事汇总5篇
从前,有一个名叫马丁的吹牛鬼,他常向别人夸耀自己如何如何能干,但实际上,除了信口开河以外,他什么事情都不会。
一天,马丁到邻村去玩。在村口,他碰到了一群手拿武器准备到田里去捉青蛙的村民。他们都认识吹牛鬼马丁,所以都十分高兴,都想拿他来开开心。
一个村民对马丁说:“喂,马丁,我们这儿的青蛙,一只只都有野猪那么大。你敢和我们一起去捉吗?”
马丁一听很高兴,因为他很爱吃蛙肉,何况象野猪那么大的青蛙,他可是连见也未曾见过的啊!所以他马上应口道:“好啊!我和你们一起去。”
另一个村民提醒他说:“马丁,带一根粗点的大木棒吧,那些青蛙都是很难对付的呀!”
吹牛鬼马丁大笑起来:“哈哈哈!木棒?带木棒做什么?田里的青蛙如果真的象野猪那么大,我就骑到它们的背上去,空手把它们的脖子拧断。”
马丁真的没带木棒,就跟着村民们到田里去了。当然,他一路上没有忘了向村民们吹嘘一通。他的这些大话,却让躲在树叶下的蛙王给听去了。蛙王把树底下所有的青蛙都召集起来,告诉它们:“大家注意了,让我们教训教训那个吹牛鬼,看他以后还敢不敢吹牛!”
这时,村民们都分头去找青蛙了。马丁独自一人向前走着,蛙王紧紧地跟在他后面。走着,走着,蛙王忽然一下子跳到了马丁前面的河岸边。它半闭起眼睛,静静地伏在那里,一动也不动。马丁可不知道这些,他继续向前走着。路旁的蛙群不停地向他叫着,声音象打雷一样。马丁听得又惊又怒,就在他实在受不了的时候,突然,他真地看见一只巨大的青蛙就伏在面前,动也不动。这下,马丁可高兴了,他真地跳到了蛙王的背上。说时迟,那时快,蛙王立刻用一只前脚紧紧地勾住马丁的脖子,向河里跳去。这时,马丁可有点害怕了,他拼命想挣脱蛙王的那只前脚,可蛙王的力气太大了,他怎么也挣脱不开。这时蛙王说话了:“别怕,年轻人。我带你游过河去,我们一面游,一面唱歌怎么样。”说着,他真的张大喉咙,大声唱了起来,岸上所有的青蛙也都跟着叫了起来,那个嘈杂,简直让人受不了。
这就是关于《儿童经典故事,简单易懂讲IO》的所有内容,希望对您能有所帮助!