Java IO之打印流,缓冲流,Scanner的用法
首先,我先介绍下,在整个IO包中,打印流是输出信息最方便的类,主要包含字节打印流(PrintStream)和字符打印流(PrintWiter),打印流提供了非常方便的打印功能,可以打印任何的数据类型,列如:小数,整数,字符串等等。
构造方法:
public PrintStream(OutputStream out) --> 指定输出位置
程序介绍:
public class TestPrint1 {public static void main(String[] args) throws FileNotFoundException {PrintStream ps = null; // 声明打印流对// 如果现在是使用FileOuputStream实例化,意味着所有的输出是向文件之中 ps = new PrintStream(new FileOutputStream(new File("D:"+File.separator + "test.txt")));ps.print("hello");ps.println("world!");ps.print("1+1="+2);ps.close();
}}
实际上是将FileOutputStream类的功能包装一下。
public class TestPrint2 {public static void main(String[] args) throws FileNotFoundException {PrintStream ps = null;ps = new PrintStream(new FileOutputStream(new File("D:"+File.separator + "test.txt")));String name = "胡清风"; // 定义字符串int age = 30; // 定义整数 float score = 990.356f; // 定义小数char sex = 'M'; // 定义字符ps.printf("姓名:%s;年龄:%d;成绩:%f;性别:%c",name,age,score,sex);ps.close();
}}
格式化输出:
姓名:李兴华;年龄:30;成绩:990.356018;性别:M
总结:
1、PrintStream 可以方便的完成输出的功能。
2、在以后的输出中基本上都使用PrintStream 完成,因为比较方便一些。
3、PrintStream 属于装饰设计模式。
Java5 添加了Java.util.Scanner类,这是一个用于扫描输入文本的新的实用程序。它是以前的StringTokenizer和Matcher类之间的某种结合。任何数据都必须通过同一模式的捕获组索引或通过使用一个索引来检索文本的各个部分。可以结合使用正则表达式和从输入流中检索特定类型数据项的方法。除了使用正则表达式之外,Scanner类还可以任意地对字符串和基本类型(int,double)的数据进行分析。
程序介绍:
public class TextScanner {public static void main(String[] args) {//创建Scanner对象 接受从控制台输入 Scanner input = new Scanner(System.in);System.out.println("请输入名字:");//接受String型 String name = input.next();System.out.println("请输入学号");//接受int型int id = input.nextInt();//输出结果System.out.println("名字为:"+name+"\t学号为:"+id);
}}
Java缓冲流本身不具IO功能,只是别的流上加上缓冲提高效率。
缓冲流分为字节和字符缓冲流
字节缓冲流:
BufferedInputStream—字节输入缓冲流
BufferedOutputStream—字节输出缓冲流
字符缓冲流:
BufferedReader—字符输入缓冲流
BufferedWriter—字符输出缓冲流
程序介绍:
public class BufferedOutStream extends BufferedOutputStream{public byte[] buf;public BufferedOutStream(OutputStream out) {this(out, 8192);
}public BufferedOutStream(OutputStream out, int size) {super(out);if (size <= 0) {throw new IllegalArgumentException("Buffer size <= 0");}buf = new byte[size];
}public static void main(String[] args) throws FileNotFoundException {try {//创建字节输出流实例OutputStream out = new FileOutputStream("D:\\workspace\\test.txt"); //根据字节输出流构建字节缓冲流BufferedOutputStream buf = new BufferedOutputStream(out);String data = "好好学习,天天向上";buf.write(data.getBytes()); //写入缓冲区buf.flush(); //刷新缓冲区,即把内容写入buf.close(); //关闭缓冲流时,也会刷新一次缓冲区 out.close();} catch (IOException e) {e.printStackTrace();}
}}
BufferedOutputStream类实现缓冲的输出了,通过设置这种输出流,应用程序就可以将各个字节写入底层输出流中,而不必每一个字节写入都调用底层系统。
public class BufferedInputStream extends java.io.BufferedInputStream{public BufferedInputStream(InputStream in) {super(in);
}public BufferedInputStream(InputStream in, int size) {super(in, size);
}public static void main(String[] args) throws FileNotFoundException {try {//创建字节输入流实例InputStream in = new FileInputStream("D:\\workspace\\test.txt"); //根据字节输入流构建字节缓冲流BufferedInputStream buf = new BufferedInputStream(in);byte[] bytes = new byte[1024];int len = -1;StringBuffer sb = new StringBuffer();while ((len = buf.read(bytes))!= -1) {sb.append(new String(bytes,0,len));}System.out.println("内容为:"+sb);buf.close();in.close();} catch (IOException e) {e.printStackTrace();}
}}
BufferedInputStream为别的输入流添加缓冲功能,在创建BufferedInputStream时会创建一个内部缓冲数组,用于缓冲数据,提高性能。
输出结果:
内容为:好好学习,天天向上
字符缓冲流与字节缓冲流的程序结构是一样的,只需要理解程序就可以写出来,这里我就不再重复了。
Java IO之打印流,缓冲流,Scanner的用法相关推荐
- day27-API-java流的三大分类,常用的流(文件流,对象流, 缓冲流, 转换流, PW)
文章目录 一. java流的三大类 1. 输出流和输入流 2. 字节流和字符流 3. 节点流和处理流 二. 字节流 1. 文件流 FIS和FOS 1.1 文件输出流:FileOutputStream ...
- Java基础知识强化之IO流笔记41:字符流缓冲流之复制文本文件案例02(使用 [ newLine() / readLine() ] )(重要)...
1. 使用字符流缓冲流的特殊功能 [ newLine() / readLine() ] 需求:把当前项目目录下的a.txt内容复制到当前项目目录下的b.txt中 数据源: a.txt -- 读取数据 ...
- java byte char io流_吃透Java IO:字节流、字符流、缓冲流
前言有人曾问fastjson的作者(阿里技术专家高铁):"你开发fastjson,没得到什么好处,反而挨了骂背了锅,这种事情你为什么要做呢?" 高铁答道:"因为热爱本身, ...
- Java——IO(打印流)
1,打印字节流(PrintStream)的概述: 打印流可以很方便的将对象的toString()结果输出并且自动加上换行,而且可以使用自动刷出的模式 System.out就是一个PrintStream ...
- 【Java基础】吃透Java IO:字节流、字符流、缓冲流
文章目录 [Java基础-3]吃透Java IO:字节流.字符流.缓冲流 一.初识java IO 1.1 IO流分类 1.1.1 输入流与输出流 1.1.2 字节流与字符流 1.1.3 节点流和处理流 ...
- java字符流字节流场景_【120期】Java IO:字节流、字符流、缓冲流
IO流是Java中的一个重要构成部分,也是我们经常打交道的.这篇关于Java IO的博文干货满满,堪称全网前三(请轻喷!) 下面几个问题(问题还会继续补充),如果你能对答如流,那么恭喜你,IO知识掌握 ...
- fileoutputstream 字节乱码_吃透Java IO:字节流、字符流、缓冲流
前言 有人曾问fastjson的作者(阿里技术专家高铁):"你开发fastjson,没得到什么好处,反而挨了骂背了锅,这种事情你为什么要做呢?" 高铁答道:"因为热爱本身 ...
- Java IO流 处理流--缓冲流(Buffering)
1. 缓冲流(Buffering) 缓冲流要"套接"在相应的节点流之上,对读写的数据提供了缓冲的功能,提高了读写的效率,同时增加了一些新的方法.Java提供了四种缓冲流,常用构造方 ...
- Java IO流 - 缓冲流的详细使用介绍
文章目录 缓冲流 缓冲流概述 字节缓冲流 字符缓存流 缓冲流 缓冲流概述 缓冲流介绍: 缓冲流也称为高效流.或者高级流.之前学习的字节流和字符流可以称为原始流. 作用:缓冲流自带缓冲区.可以提高原始字 ...
- 进阶15 IO流+字节字符输入输出+IO异常处理+属性集+缓冲流+各种编码+序列化
IO概述 什么是IO 生活中,你肯定经历过这样的场景.当你编辑一个文本文件,忘记了ctrl+s ,可能文件就白白编辑了.当你电脑上插入一个U盘,可以把一个视频,拷贝到你的电脑硬盘里.那么数据都是在哪些 ...
最新文章
- 程序设计第三次作业附加 代码规范
- 单电源运算放大器全波整流电路_几种二极管整流电路原理图解。
- C语言(九)C语言概述
- layui 表格新增删除一行
- Existing Linux Wireless drivers
- 【长尾分布】用半监督或自监督解决
- token和session的区别
- vue_组件_监听组件事件
- MVC是什么?(转载)
- 反射与二次加工标准类型
- jquery验证表单很简单的方法
- POJ 2989 All Friends
- Mac下Android 反编译
- 【Linux】ssh的安装及配置
- 【Codecs系列】双帧参考特性
- 如何用Git将代码上传到GitHub
- 机器学习中的最优化问题
- VESTA的扩胞功能——超晶胞的建立
- ubuntu 安装MySQL8
- 群策CRM解决方案,直击系统集成行业风口