1. Print 流介绍
1) PrintWriter和PrintStream都属于输出流,分别针对与字符和字节。
2) PrintWriter和PrintStream提供了重载的print。
3) Println方法用于多种数据类型的输出。
4) PrintWriter和PrintStream的输出操作不会抛出异常,用户通过检测错误状态获取错误信息。
5) PrintWriter和PrintStream有自动flush功能。
2. Print 流常用函数
1) PrintWriter(Writer out)
2) PrintWriter(Writer out,booleanautoFlush)
3) PrintWriter(OutputStream out)
4) PrintWriter(OutputStreamout,boolean autoFlush)
5) PrintStream(OutputStream out)
6) PrintStream(OutputStreamout,boolean autoFlush)
3. Print 流例子一
package com.owen.io;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintStream;
/**
* Print流的使用
*
* @author OwenWilliam 2016-7-20
* @since
* @version v1.0.0
*
*/
public class TestPrintStream1
{
public static void main(String[] args)
{
PrintStream ps = null;
try
{
// 将内容读出到指定文件中
FileOutputStream fos = new FileOutputStream("E:\\test\\log.dat");
// 使用PrintStream不会抛出异常,关于所有的print的操作都与其有关
ps = new PrintStream(fos);
} catch (IOException e)
{
e.printStackTrace();
}
// setOut是将输出的流“管道”对准指定的文件中输出,而不是我们的命令窗口
if (ps != null)
{
System.setOut(ps);
}
int ln = 0;
// 输出到控制台,同时也会写入上面的文件
for (char c = 0; c <= 60000; c++)
{
System.out.print(c + " ");
if (ln++ >= 100)
{
System.out.println();
ln = 0;
}
}
}
}
4. Print 流例子二
package com.owen.io;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintStream;
/**
* Print流文件读出
* @author OwenWilliam 2016-7-20
* @since
* @version v1.0.0
*
*/
public class TestPrintStream2
{
public static void main(String[] args)
{
String filename = "E:/workspace/Java/IO/src/com/owen/io/TestPrintStream2.java";
if (filename != null)
{
list (filename, System.out);
}
}
/**
* 实现指定文件读出
* @param f 文件路径
* @param fs 读出
*/
private static void list(String f, PrintStream fs)
{
try
{
BufferedReader br = new BufferedReader(new FileReader(f));
String s = null;
while ((s = br.readLine()) != null)
{
fs.println(s);
}
br.close();
} catch (IOException e)
{
fs.println("无法读取文件");
}
}
}
5. Print 流例子三
package com.owen.io;
import java.io.BufferedReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.Date;
/**
* 使用Print流实现日志功能
* @author OwenWilliam 2016-7-20
* @since
* @version v1.0.0
*
*/
public class TestPrintStream3
{
public static void main(String[] args)
{
String s = null;
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
try
{
//文件写入地方
FileWriter fw = new FileWriter("E:\\test\\logfile.log",true);
PrintWriter log = new PrintWriter(fw);
//一行一行写入
while ((s = br.readLine()) != null)
{
if (s.equalsIgnoreCase("exit")) break;
System.out.println(s.toUpperCase());
log.println("-------");
log.println(s.toUpperCase());
log.flush();
}
//结束记录时间
log.println("====" + new Date() + "====");
log.flush();
log.close();
} catch (IOException e)
{
e.printStackTrace();
}
}
}