由于OutputStream、Writer 类实现内容输出时操作并不方便 .
所以IO包提供了两个专门用于输出的操作类:PrintStream、PrintWriter。前者是字节流操作、后者是字符流操作 .
PrintStream类的构造方法 : public PrintStream(OutputStream out)
如果要想进行文件的输出,使用的是FileOutputStream、FileWriter 子类。在PrintStream 类之中提供了一系列的输出方法:print()、println()。
eg : 打印流的示例 :
package example;
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("e:\\test.txt");
if(file.exists()) {
PrintStream out = new PrintStream(new FileOutputStream(file));
String name = "Monica" ;
int age = 20 ;
double score = 10.5 ;
out.println("姓名 :" + name + ",年龄:" + age + " ,分数:" + score);
out.println(100);
out.println(200.5);
//格式化输出 :
out.format("姓名:%s,年龄:%d,分数:%5.2f", name,age,score);
out.close();
}
}
}
▲ . 上面的例子中用到一个格式化输出的方法 .
从JDK 1.5 开始,PrintStream 类增加了新的支持 —— 格式化输出。
public PrintStream format(String format, Object... args)
格式化需要一些标记:
├ . · 字符串:%s;
├ . · 整型数据:%d;
├ . · 小数:%m.nf。
======================================================================================================================
同样的为了读取数据的方便 , 自从JDK1.5之后 , 增加一个新的功能类 : java.util.Scanner类 .
Scanner类的构造方法 : public Scanner(InputStream source)
根据其构造方法可以为传入一个InputStream流来实例化Scanner类 .
eg : 扫描流的示例 :
package example;
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("e:\\test.txt");
if(file.exists()) {
Scanner scan = new Scanner(new FileInputStream(file),"utf-8");
//使用换行符作为分隔符("\n"),默认的情况下使用的空格或者换行符
scan.useDelimiter("\n");
while(scan.hasNext()) {
System.out.print(scan.next());
}
scan.close();
}
}
}
▲ . 使用Scanner 操作文件的读取是非常方便的,但是一定要考虑好分隔符的问题。
Scanner 类还可以方便的进行键盘数据的接收,如果现在要想由键盘输入数据,则可以利用System.in完成。
eg :
package example;
import java.util.Scanner;
/**
* 扫描流
*/
public class TestDemo {
public static void main(String[] args) throws Exception {
Scanner scan = new Scanner(System.in);
//使用换行符作为分隔符("\n"),默认的情况下使用的空格或者换行符
scan.useDelimiter("\n");
System.out.print("请输入内容:");
if(scan.hasNext()) {
System.out.print("输入内容为:" + scan.next());
}
scan.close();
}
}
★ . 具体的方法请查阅API.