博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第1章 标准输入流 & 转换流 & 打印流
阅读量:6837 次
发布时间:2019-06-26

本文共 5892 字,大约阅读时间需要 19 分钟。

1.1 标准输入输出流

public static final InputStream in:标准输入流
public static final PrintStream out:标准输出流

package com.itheima_05;/** 标准输入输出流:                public static final InputStream in:字节输入流,用来读取键盘录入的数据                        public static final int x;                        InputStream is = System.in;                        Scanner sc = new Scanner(System.in);                public static final PrintStream out:字节输出流,将数据输出到命令行                        System.out.println();*/      public class SystemInOutDemo {}

1.2 转换流

1.2.1 OutputStreamWriter:将字节输出流转换为字符输出流
1.2.1.1 案例代码一:

package com.itheima_05;[/font][/align][font=微软雅黑]import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;import java.io.OutputStream;import java.io.OutputStreamWriter;import java.io.Writer;/* * 需求:读取项目根目录下的SystemInOutDemo.java,并输出到命令行 * * 数据源:项目根目录下的SystemInOutDemo.java        BufferedReader * 目的地:命令行        System.out * * * 由于标准输出流是一个字节输出流,所以只能输出字节或者字节数组,但是我们读取到的数据则是字符串,如果想进行输出还需要转换成字节数组 * 我们要想通过标准输出流输出字符串,把标准输出流转换成一种字符输出流即可,OutputStreamWriter * * OutputStreamWriter(OutputStream out) :转换流,把字节输出流转换成字符输出流 * * */public class OutputStreamWriterDemo {public static void main(String[] args) throws IOException   {//method2();//创建输入流对象BufferedReader br = new BufferedReader(new FileReader("SystemInOutDemo.java"));//创建输出流对象//OutputStream os = System.out;//Writer w = new OutputStreamWriter(System.out);//多态,父类型引用指向子类对象//BufferedWriter bw = new BufferedWriter(w);BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));//进行数据的读写String line;//用于存储读取到的数据while((line = br.readLine()) != null) {bw.write(line);bw.newLine();}//释放资源bw.close();br.close();}private static void method2() throws FileNotFoundException, IOException {//创建输入流对象BufferedReader br = new BufferedReader(new FileReader("SystemInOutDemo.java"));//创建输出流对象//OutputStream os = System.out;Writer w = new OutputStreamWriter(System.out);//多态,父类型引用指向子类对象//进行数据的读写String line;//用于存储读取到的数据while((line = br.readLine()) != null) {w.write(line);w.write("\r\n");}//释放资源w.close();br.close();}private static void method() throws FileNotFoundException, IOException {//创建输入流对象BufferedReader br = new BufferedReader(new FileReader("SystemInOutDemo.java"));//创建输出流对象OutputStream os = System.out;String line;//用于存储读取到的数据while((line = br.readLine()) != null) {os.write(line.getBytes());os.write("\r\n".getBytes());}//释放资源os.close();br.close();}}

1.2.2 InputStreamReader:将字节输入流转换为字符输入流

1.2.2.1 案例代码二:

package com.itheima_05;import java.io.FileWriter;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.Reader;/* * 需求:读取键盘录入的数据,并输出到项目根目录下的a.txt文件中 * * 数据源:读取键盘录入的数据        System.in * 目的地:项目根目录下的a.txt        FileWriter * * * * 转换流:需要把字节输入流转换成字符输入流,InputStreamReader * InputStreamReader(InputStream in) */public class InputStreamReaderDemo {public static void main(String[] args) throws IOException  {//创建输入流对象InputStream is = System.in;Reader r = new InputStreamReader(is);//创建输出流对象FileWriter fw = new FileWriter("a.txt");//读写数据char[] chs = new char[1024];int len;while((len = r.read(chs)) != -1) {fw.write(chs,0,len);fw.flush();}//释放资源fw.close();is.close();}private static void method() throws IOException {//创建输入流对象InputStream is = System.in;//创建输出流对象FileWriter fw = new FileWriter("a.txt");//读写数据byte[] bys = new byte[1024];int len;//用于存储读取到的字节个数while((len = is.read(bys)) != -1) {fw.write(new String(bys,0,len));fw.flush();}//释放资源fw.close();is.close();}}

1.3 打印流

打印流添加输出数据的功能,使它们能够方便地打印各种数据值表示形式.
字符打印流 PrintWriter
void print(String str): 输出任意类型的数据,
void println(String str): 输出任意类型的数据,自动写入换行操作
1.3.1 案例代码三:

package com.itheima_06;import java.io.FileNotFoundException;import java.io.IOException;import java.io.PrintWriter;/* * 打印流: * PrintStream * PrintWriter * 可以自动换行,println() * 不能输出字节,但是可以输出其他任意类型 * 通过某些配置,可以实现自动刷新(只有在调用 println、printf 或 format才有用) * 也是包装流,不具备写出功能 * 可以把字节输出流转换成字符输出流 * * 注意:只能输出不能输入 * *  */public class PrintWriterDemo {public static void main(String[] args) throws IOException  {//创建打印流对象PrintWriter pw = new PrintWriter("b.txt");//写出数据pw.write("hello");pw.write("world");pw.write("java");//释放资源pw.close();}}

1.3.2 案例代码四:

利用打印流实现自动换行与自动更新

package com.itheima_06;[/font][/align] [font=微软雅黑]import java.io.FileNotFoundException;import java.io.FileWriter;import java.io.IOException;import java.io.PrintWriter;/* * 打印流的特有功能: * 自动换行 使用方法println()实现自动换行 * 自动刷新  创建PrintWriter对象时启动自动刷新开关,并且使用println等3个方法可以实现自动刷新 * * 注意:创建FileWriter对象时boolean参数是是否追加, * 而创建打印流对象的boolean类型参数是是否自动刷新 */public class PrintWriterDemo2 {public static void main(String[] args) throws IOException  {//method();//创建打印流对象//PrintWriter pw = new PrintWriter("d.txt");PrintWriter pw = new PrintWriter(new FileWriter("d.txt"),true);pw.println("hello");pw.println("world");pw.println("java");//释放资源//pw.close();}private static void method() throws FileNotFoundException {//创建打印流对象PrintWriter pw = new PrintWriter("c.txt");/*pw.write("hello");pw.write("world");pw.write("java");*/pw.print("hello");pw.println("world");pw.println("java");//释放资源pw.close();}}

1.3.3 案例代码五:

利用打印流将根目录下的SystemInOutDemo.java复制到d:\SystemInOutDemo.java下

package com.itheima_06;import java.io.BufferedReader;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.io.PrintWriter;/* * 使用打印流复制文本文件 * * 数据源        SystemInOutDemo.java        BufferedReader * 目的地        d:\\SystemInOutDemo.java        PrintWriter * */public class PrintWriterDemo3 {public static void main(String[] args) throws IOException  {//创建输入流对象BufferedReader br = new BufferedReader(new FileReader("SystemInOutDemo.java"));//创建打印流对象PrintWriter pw = new PrintWriter(new FileWriter("d:\\SystemInOutDemo.java"),true);String line;//用于存储读取到的每行数据while((line = br.readLine()) != null) {pw.println(line);}//释放资源

转载于:https://blog.51cto.com/13517854/2104297

你可能感兴趣的文章
Spring @PostConstruct and @PreDestroy example
查看>>
软件架构师2
查看>>
单链表的操作
查看>>
没事抽空学——常用界面组件属性
查看>>
《程序员代码面试指南》第二章 链表问题 构造链表和节点的实体
查看>>
【LeanEAP.NET】精益企业应用平台---源码&Demo下载
查看>>
Django restfulframework 开发相关知识 整理
查看>>
去掉数组中重复的数字。
查看>>
Poj 2887-Big String Splay
查看>>
docker笔记-docker-container
查看>>
SuperSocket 服务管理器 (ServerManager)
查看>>
Eclipse launch failed.Binary not found解决方案
查看>>
NSGA-II入门C1
查看>>
结对第2次作业——WordCount进阶需求
查看>>
两个经典递归问题:菲波那契数列 + 汉诺塔
查看>>
php中处理xml文件的类 simpleXML
查看>>
结构体内字节手动对齐(#pragam pack)
查看>>
TagCloudView云标签的灵活运用
查看>>
Wikioi 1020 孪生蜘蛛 Label:Floyd最短路
查看>>
链路聚合
查看>>