IO--打印流

来源:互联网 发布:sftp用的什么端口 编辑:程序博客网 时间:2024/06/05 03:45
import java.io.BufferedOutputStream;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.PrintStream;/** * PrintStream  打印流 处理流 */public class PrintStreamTest {    public static void main(String[] args) throws FileNotFoundException {        System.out.println("TEST");        PrintStream ps = System.out;        ps.println(false);        //打印到文件        File des = new File("G:/java/test/printStream.txt");        ps = new PrintStream(new BufferedOutputStream(new FileOutputStream(des)));        ps.println("PrintStream is so easy...");        ps.close();    }}
import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.FileDescriptor;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.PrintStream;import java.util.Scanner;/** * 三个常量 * 1、System.in  输入流 键盘输入 * 2、System.out 输出流 控制台输出 *    System.err * 重定向(默认:标准输入是键盘,标准输出是控制台) * setIn() * setOut() * setErr() * FileDescriptor.in    标本输入流 * FileDescriptor.out   标本输出流 * FileDescriptor.err */public class SystemTest {    public static void main(String[] args) throws IOException {        testOut();        testIn();        testRedirect();    }    public static void testOut(){        System.out.println("out");        System.err.println("err");//跟out功能一样的,只是文本颜色是红色的    }    public static void testIn() throws IOException{        InputStream is = System.in;//键盘输入        Scanner sc = new Scanner(is);        System.out.println("请输入:");        System.out.println(sc.nextLine());        is.close();        sc.close();             //从文件中        is = new BufferedInputStream(new FileInputStream("G:/java/test/PrintStream.txt"));        sc = new Scanner(is);        System.out.println(sc.nextLine());//print:PrintStream is so easy...        is.close();        sc.close();    }    /**     * 重定向     * @throws FileNotFoundException      */    public static void testRedirect() throws FileNotFoundException{        System.setOut(                    new PrintStream(                            new BufferedOutputStream(new FileOutputStream("G:/java/test/redirect.txt")),true));//true自助刷新        System.out.println("a");//控制台-->>文件        //回控制台        System.setOut(                    new PrintStream(                            new BufferedOutputStream(new FileOutputStream(FileDescriptor.out)),true));        System.out.println("back...");    }}
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;/** * 封装输入 */public class BufferedIn {    public static void main(String[] args) throws IOException {        InputStream is = System.in;        BufferedReader br = new BufferedReader(new InputStreamReader(is));        System.out.println("请输入...");        String msg = br.readLine();        System.out.println(msg);    }}

装饰设计模式

处理流是对节点流的包装,对节点流进行装饰,使用了装饰设计模式
例如:类Amplifier对类Voice进行包装

public class Voice {    private int voice = 10;    public Voice() {    }    public int getVoice() {        return voice;    }    public void setVoice(int voice) {        this.voice = voice;    }    public void say(){        System.out.println(voice);    }}
** * 扩音器 * 类与类之间的关系 * 1、依赖:形参或局部变量 * 2、关联:属性 *      聚合:属性   整体与部分   不一致的生命周期    人与手 *      组合:属性   整体与部分   一致的生命周期     人与大脑 * 3、继承:父子类关系 * 4、实现:接口与实现类关系 */public class Amplifier {    private Voice voice;    public Amplifier() {    }    public Amplifier(Voice voice) {        super();        this.voice = voice;    }    public void say(){        System.out.println(voice.getVoice()*1000);    }}
public class App {    public static void main(String[] args) {        Voice v = new Voice();        v.say();        Amplifier am = new Amplifier(v);        am.say();    }}
原创粉丝点击