JAVA 打印流与转换流

转换流主要有两个 InputStreamReader 和 OutputStreamWriter

1. InputStreamReader 主要是将字节流输入流转换成字符输入流

2. OutputStreamWriter 主要是将字节流输出流转换成字符输出流

打印流主要包含两个:PrintStream 和 PrintWriter,分别对应字节流和字符流

完成屏幕打印的重定向

System.out 对应的就是 PrintStream , 默认在输出在控制台,我们可以重定向他的输出,可以定向到文件

也就是 执行 System.out.println("arry");  不输出到屏幕,而输出到文件

/*
    System.in 可以接收屏幕的输入

*/

import java.io.*;

public class PrintStreamTest02{

    public static void main(String[] args){

        BufferedReader br = null;

        try{

            InputStreamReader isr = new InputStreamReader(System.in);

            br = new BufferedReader(isr);

            String temp = null;
            while((temp = br.readLine()) != null){
                System.out.println(temp);
                // 如果输出 w 退出循环
                if("w".equals(temp)){
                    break;
                }
            }
        } catch(FileNotFoundException e){
            e.printStackTrace();
        } catch(IOException e){
            e.printStackTrace();
        } finally{
            try{
                if(br != null){
                    br.close();
                }
            }catch(IOException e){
                e.printStackTrace();
            }
        }
    }

}
/*
完成屏幕打印的重定向

    System.out 对应的就是 PrintStream , 默认在输出在控制台,我们可以重定向他的输出,
    可以定向到文件 就是 执行 System.out.println("arry");  不输出到屏幕,而输出到文件    

*/

import java.io.*;

public class PrintStreamTest01{

    public static void main(String[] args){

        FileOutputStream fos = null;

        try{

            fos = new FileOutputStream("C:\\work\\Java\\arry.txt");

            PrintStream ps = new PrintStream(fos);

            System.setOut(ps);

            System.out.println("arry老师太帅了!就是帅 !");

        } catch(FileNotFoundException e){
            e.printStackTrace();
        } catch(IOException e){
            e.printStackTrace();
        } finally{
            try{
                if(fos != null){
                    fos.close();
                }
            }catch(IOException e){
                e.printStackTrace();
            }
        }
    }

}
/*
完成屏幕打印的重定向

    System.out 对应的就是 PrintStream , 默认在输出在控制台,我们可以重定向他的输出,
    可以定向到文件 就是 执行 System.out.println("arry");  不输出到屏幕,而输出到文件    

*/

import java.io.*;

public class PrintStreamTest01{

    public static void main(String[] args){

        FileOutputStream fos = null;

        try{

            fos = new FileOutputStream("C:\\work\\Java\\arry.txt");

            PrintStream ps = new PrintStream(fos);

            System.setOut(ps);

            System.out.println("arry老师太帅了!就是帅 !");

        } catch(FileNotFoundException e){
            e.printStackTrace();
        } catch(IOException e){
            e.printStackTrace();
        } finally{
            try{
                if(fos != null){
                    fos.close();
                }
            }catch(IOException e){
                e.printStackTrace();
            }
        }
    }

}

对象流可以将 Java 对象转换成二进制写入磁盘,这个过程通常叫做序列化,并且还可

以从磁盘读出完整的 Java 对象,而这个过程叫做反序列化。

对象流主要包括:ObjectInputStream 和 ObjectOutputStream

如何实现序列化和反序列化

/*
    OutputStreamWriter 主要是将字节流输出流转换成字符输出流
*/

import java.io.*;

public class OutputStreamWriterTest01{

    public static void main(String[] args){

        BufferedWriter bw = null;

        try{

            // 字节输出流
            //FileOutputStream fos = new FileOutputStream("C:\\work\\Java\\arry.txt");
            // 字符输出流
            //OutputStreamWriter osw = new OutputStreamWriter(fos);

            bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("C:\\work\\Java\\arry.txt")));

            bw.write("keke老师新婚快乐 !");
            bw.newLine();

            bw.write("祝福师傅和师娘 新婚快乐,百年好合,白头偕老,早生贵子 ! !!!!");

            bw.flush();

        } catch(FileNotFoundException e){
            e.printStackTrace();
        } catch(IOException e){
            e.printStackTrace();
        } finally{
            try{
                if(bw != null){
                    bw.close();
                }
            } catch(IOException e){
                e.printStackTrace();
            }
        }
    }

}
/*
    对象流:

        对象流可以将java对象转换成二进制写入磁盘,这个过程叫做“序列化”
        还可以从磁盘读取完整的Java对象,这个过程叫 “反序列化”

        包括:ObjectInputStream 和 ObjectOutputStream

    java.io.Serializable 

*/

import java.io.*;

public class ObjectStreamTest02{

    public static void main(String[] ags){

        ObjectInputStream ois = null;

        try{

            FileInputStream fis = new FileInputStream("C:\\work\\Java\\arry.txt");

            ois = new ObjectInputStream(fis);

            // 反序列化
            Student stu = (Student)ois.readObject();

            System.out.println(stu.name);

        }catch(FileNotFoundException e){
            e.printStackTrace();
        }catch(IOException e){
            e.printStackTrace();
        }catch(ClassNotFoundException e){
            e.printStackTrace();
        } finally{
            try{
                if(ois != null){
                    ois.close();
                }
            }catch(IOException e){
                e.printStackTrace();
            }
        }

    }

}

// 实现序列化接口
class Student implements Serializable{
    String name;
}

如果实现序列化该类必须实现序列化接口 java.io. Serializable , 该接口没有任何方法, 该接口

只是一种标记接口,标记这个类是可以序列化的

时间: 2024-12-05 07:34:01

JAVA 打印流与转换流的相关文章

Java IO之处理流(缓冲流、转换流)

一.处理流: 增强功能,提供性能,在节点流之上. 二.节点流与处理流的关系 节点流(字节流.字符流)处于IO操作的第一线,所有操作必须通过它们进行: 处理流可以对其他流进行处理(提高效率或操作灵活性). 三.缓冲流 1.字节缓冲流 BufferedInputStream BufferedOutputStream package IOBuffer; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; im

I/O流之--转换流:InputStreamReader 和InputStreamWriter

I/O流之--转换流:InputStreamReader 和InputStreamWriter 分类: java2014-07-01 15:30 815人阅读 评论(0) 收藏 举报 目录(?)[+] 一.InputStreamReader类 InputStreamReader 将字节流转换为字符流.是字节流通向字符流的桥梁.如果不指定字符集编码,该解码过程将使用平台默认的字符编码,如:GBK. 构造方法: InputStreamReader isr = new InputStreamReade

10缓冲流、转换流、序列化流、Files

十.流 10.1 缓冲流 10.1.1 概述 缓冲流是对4个基本的FileXxx流的增强,所以也是4个流,按照数据类型进行分类 字节缓冲流:BufferedInputStream,BufferedOutputStream 字符缓冲流:BufferedReader,BufferedWriter 缓冲流的基本原理,是在创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO次数,从而提高读写的效率. 10.1.2 字节缓冲流 构造方法: 构造方法 - public Buffe

IO流之转换流

一  转换流 1 OutputStreamWriter类 是字符流通向字节流的桥梁: 可使用指定的字符编码表,将要写入流中的字符编码成字节.它的作用的就是,将字符串按照指定的编码表转成字节,在使用字节流将这些字节写出去. public static void main(String[] args) throws IOException { //指定目的地 FileOutputStream fos=new FileOutputStream("E:\\java\\UTF-8.txt",tr

Java-IO流之转换流的使用和编码与解码原理

一.理论: 1.字符流和字节流区别是什么? 字符流=字节流+编码集,在实际读取的时候其实字符流还是按照字节来读取,但是会更具编码集进行查找编码集字典解析相应的字节,使得一次读取出一个字符: 2.什么是转换流? 转换流就是原本是字节流,但是读取到的数据是字符,所以我们希望使用字符流来进行操作,那么就可以使用转换流进行转换: 转换流=字节流+编码集. 转换流的特点是可以指定编码集. 3.转换流的作用: (1).从控制台读取数据输入(键盘输入),将它们写入到文件(我们写的是字符吧): (2).当对文件

java IO 四(转换流的使用)

扯点别的: 随着年龄的慢慢增长,有些道理才明白,有些爱才感慨.家人或许希望你能立足大城市,开创一番事业.但是在内心里家人永远希望你多花点时间陪陪他们,一起吃吃饭,说说话,只要你平平安安,生活快乐,家人就感到幸福.所以多花点时间陪陪父母.陪陪爱人.陪陪孩子. 又搁置了不短的时间,继续写java io的知识,现在感觉自己的记忆力真的不行了,总是记不住东西,哎,关键还是理解不够深入,靠死记硬背是不行的看样.开搞.参考自毕向东老师的视频 第一: InputStreamReader 看看JDK里面的解释,

Java:IO流之转换流

IO流的基本流情况: 字符流:                字符流缓冲区: FileReader              BufferedReader FileWriter               BufferedWriter 字节流:                字节流缓冲区: FileInputStream       BufferedInputStream FileOutputStream     BufferedOutputStream 在ReadInDemo.java中通过键

【JAVA IO流之转换流OutputStreamWriter和InputStreamReader】

java字符流的底层还是使用字节流实现的,所以字节流时刻转换为字符流的.转换流主要使用到 OutputStreamWriter:将字节输出流转换为字符输出流形式 InputStreamReader:将输入的字节流转换为字符流输入形式 1.OutputStreamWriter(字节输出流-->字符输出流) OutputStreamWriter是字节流通向字符流的桥梁.如果不指定字符集编码,该解码过程将使用平台默认的字符编码 构造方法: OutputStreamWriter os = new Out

Java学习总结(7)——(File类,IO流,(缓冲流,转换流等),Properties类)

一.File类 java.io.File类代表系统文件(文件和目录) 访问文件属性步骤 (1)创建文件对象 格式:File file=new File(String pathname); (2)调用方法:操作文件目录的属性(路径,权限,日期和时间等) File类的属性(separator默认名称分隔符) (1)在UNIX系统上,此字段的值为 '/ ';在window系统上,它为'\' (2)为了程序的跨平台性,文件的路径应该用这个属性值来代表 File类的常用方法 方法名称 说明 Boolean