在java IO(一) 曾介在绍了多种输出流.可以发现在输出数据时,不论是使用字节输出流OutputStream还是字符输出流Writer都很不方便,比如想输出一个int 型数据,还要先把int型转换称字符串(若使用OuputStream,还需要将字符串转换称字节数组)再输出.为了简化输出操作,java专门提供了两个类:
字节打印流(PRintStream)
字符打印流(PrintWriter)
由于这两个类的操作类似,所以这里只讲解字节打印流PrintStream
PrintStream类常用方法
No. | 方法 | 类型 | 描述 |
---|---|---|---|
1 | public PrintStream(File file) | 构造 | 通过一个File对象实例化PrintStream类 |
2 | public PrintStream(OutputStream out) | 构造 | 接收OutputStream类对象实例化PrintStream类 |
3 | public PrintStream printf(String format, Object … args) | 普通 | 根据本地环境格式化输出,与C语言的printf()函数类似 |
4 | public PrintStream append(char c) | 普通 | 向输出流中添加数据 |
5 | public void print(数据类型 b) | 普通 | 输出任意指定类型数据 |
6 | public void println(数据类型 b) | 普通 | 输出任意指定类型数据后换行 |
代码示例
import java.io.File;import java.io.FileOutputStream;import java.io.PrintStream;public class TestDemo{ public static void main(String [] args)throws Exception{ File file = new File("/home/linyimin/DaSi/java/out.txt"); // 使用FileOutputStream类对象实例化PrintStream类 PrintStream tool = new PrintStream(new FileOutputStream(file)); // 向文件中输入int型数据 tool.println(30); // 向文件中输入double型数据 tool.println(12.00); // 向文件中输入char型数据 tool.println('a'); // 向文件中输入boolean型数据 tool.println(true); // 向文件中输入字符串 tool.println("Hello World."); // 关闭打印流 tool.close(); }}程序运行结果: out.txt文件中的内容为: 30 12.0 a true Hello World.
本程序使用PrintStream类很方便的完成了各类数据写入文件的操作.
Java不仅为程序输出数据方便提供PrintStream类,还为方便程序读入数据提供了Scanner类.
Scanner类常用方法
No. | 方法 | 类型 | 描述 |
---|---|---|---|
1 | public Scanner(InputStream source) | 构造 | 从指定的字节输入流中接收内容 |
2 | public boolean hasNext(Pattern pattern) | 普通 | 判断输入的数据是否符合指定的正则标准 |
3 | public boolean hasNext() | 普通 | 判断是否有输入内容 |
4 | public boolean hasNextXXX() | 普通 | 判断输入是否为指定的数据类型 |
5 | public Stirng next() | 普通 | 接收内容 |
6 | public String next(Pattern pattern) | 普通 | 进行正则验证,符合就接收内容 |
7 | public XXX nextXXX() | 普通 | 接收指定的输入类型数据 |
8 | public Scanner useDelimiter(String pattern) | 普通 | 设置读取的分隔符 |
代码示例
通过Scanner进行数据的输入import java.util.Scanner;public class TestDemo{ public static void main(String [] args){ Scanner in = new Scanner(System.in); in.useDelimiter("/n"); System.out.println("请输入数据:"); if(in.hasNext()){ String str = in.next(); System.out.println("你输入的数据为:" + str); } }}程序运行结果 请输入数据: Hello World.
本程序通过Scanner完成从键盘输入数据,需要注意的是:如果不使用useDelimiter()函数设置分隔符,系统默认空格和回车为分割符.
通过Scanner从文件中读取信息import java.io.File;import java.io.FileInputStream;import java.util.Scanner;public class TestDemo{ public static void main(String [] args)throws Exception{ File file = new File("/home/linyimin/DaSi/java/out.txt"); // 实例化Scanner对象 Scanner in = new Scanner(new FileInputStream(file)); // 设置分隔符 in.useDelimiter("/n"); System.out.println("out.txt文件的内容为:"); // 每一次读取一行数据 while(in.hasNext()){ System.out.println(in.next()); } }}程序运行结果 out.txt文件的内容为: 30 12.0 a true Hello World.
本程序使用Scanner完成从文件中读取内容的操作(每次读取一行)
注:
新闻热点
疑难解答