java中IO流的操作

读取转换流--读取键盘录入中键盘录入一行数据并打印其大写,发现就是读一行数据的原理。
也就是readLine方法。
能不能直接使用readLine方法来完成键盘录入一行数据的读取呢?
readLine方法是字符流BufferedReader类中的方法。
而键盘录入的read方法是字节流InputStream的方法。
那么能不能将字节流转换成字符流再去使用字符流缓冲区的readLine方法呢。

public class TransStreamDemo {

    public static void main(String[] args) {
//        获取键盘录入对象
        InputStream is = System.in;
//        将字节流对象转化为字符流对象,使用转换流InputStreamReader
        InputStreamReader isr = new InputStreamReader(is);
//        为了提高效率,将字符串送入缓冲区,使用BufferedReader
        BufferedReader br = new BufferedReader(isr);

        String line = null;
        try {
            while ((line =br.readLine()) !=null) {
                if("over".equals(line))
                    break;
                System.out.println(line.toUpperCase());
            }
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

写入转换流--把字符流转换成字节流

public class TransStreamDemo2 {

    public static void main(String[] args) {
//        InputStream is=System.in;
//        InputStreamReader isr=new InputStreamReader(is);
//        BufferedReader br=new BufferedReader(isr);
//        可简化为
//        这是最常用的读取键盘录入
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
//        OutputStream os =System.out;
//        OutputStreamWriter osw = new OutputStreamWriter(os);
//        BufferedWriter bw = new BufferedWriter(osw);
//        可简化为
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        String line = null;
        try {
            while ((line = br.readLine()) != null) {
                if("over".equals(line))
                    break;
//                打印大写
                bw.write(line.toUpperCase());
                bw.newLine();
                bw.flush();
            }
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

流操作规律--吧键盘录入的数据存储到一个文件中

public class TransStreamDemo3 {

    public static void main(String[] args) throws IOException {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("E:/out.txt"),"utf-8"));

        String line = null;
        while ((line = br.readLine()) != null) {
            if("over".equals(line))
                break;
            bw.write(line);
            System.out.println("写入成功");
            bw.newLine();
            bw.flush();
        }
    }
}

将一个文件的数据打印在控制台上。

public class TransStreamDemo4 {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("E:/out.txt"),"utf-8"));

        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        String line = null;
        while((line = br.readLine()) != null){
            bw.write(line);
            bw.newLine();
            bw.flush();
        }
    }
}

时间: 2024-08-28 21:31:48

java中IO流的操作的相关文章

JAVA中IO流总结

本文是在学习中的总结,欢迎转载但请注明出处:http://write.blog.csdn.net/postedit/42119261 我想你对JAVA的IO流有所了解,平时使用的也比较的多,但是对于其具体分类和继承体系可能知道的并不多,可能也很少去看相关的API文档,找出其中的关系和各自的应用情形.本文简单对常用的IO流进行分类整理,并简单举例说明其应用.希望本文对你有所帮助. (A)IO流大致分为两种: (1)字节流:对应抽象类为InputStream(输入流)和 OutputStream(输

java中io流浅析

1.java.io包下File类:java程序中的此类的一个对象,就对应着硬盘中的一个文件或网络中的一个资源.File file1 = new File("d:\\io\\helloworld.txt");File file2 = new File("d:\\io\\io1");>1.File既可以表示一个文件(.doc .xls .mp3 .avi .jpg .dat),也可以表示一个文件目录!>2.File类的对象是与平台无关的.>3.File

Java中IO流

* IO流用来处理设备之间的数据传输 * Java对数据的操作是通过流的方式 * Java用于操作流的类都在IO包中 * 流按流向分为两种:输入流,输出流. * 流按操作类型分为两种: * 字节流 : 字节流可以操作任何数据,因为在计算机中任何数据都是以字节的形式存储的 * 字符流 : 字符流只能操作纯字符数据,比较方便. 字节流 |--InputStream(字节输入流,字节流的抽象父类,抽象类不能直接创建对象,必须使用子类) |--FileInputStream(文件字节输入流,就是以字节的

Java中IO流,输入输出流概述与总结

总结的很粗糙,以后时间富裕了好好修改一下. 1:Java语言定义了许多类专门负责各种方式的输入或者输出,这些类都被放在java.io包中.其中, 所有输入流类都是抽象类InputStream(字节输入流),或者抽象类Reader(字符输入流)的子类: 而所有输出流都是抽象类OutputStream(字节输出流)或者Writer(字符输出流)的子类. [首先需要明白的是:流是干什么的???(为了永久性的保存数据)   根据数据流向的不同分为输入流和输出流:   根据处理数据类型的不同分为字符流和字

Java中IO流的介绍

一.流的概念 流(stream)的概念源于UNIX中管道(pipe)的概念.在UNIX中,管道是一条不间断的字节流,用来实现程序或进程间的通信,或读写外围设备.外部文件等.       一个流,必有源端和目的端,它们可以是计算机内存的某些区域,也可以是磁盘文件,甚至可以是Internet上的某个URL.        流的方向是重要的,根据流的方向,流可分为两类:输入流和输出流.用户可以从输入流中读取信息,但不能写它.相反,对输出流,只能往输入流写,而不能读它.       实际上,流的源端和目

黑马程序员------Java中IO流学习总结

Java培训.Android培训.iOS培训..Net培训.期待您的交流 一.概念 流:流就是字节序列的抽象概念,能被连续读取数据的数据源和能被连续写入数据的接收端就是流 IO流:用于处理设备上的数据 常用设备:硬盘.内存.键盘录入等 IO流的分类: 1.根据处理的数据类型不同,可分为字节流和字符流. 字符流的由来:因为文件编码的不同,而有了对字符高效操作的字符流对象,原理是基于字节流读取字节时,去查了相关码表. 字符流和字节流的区别: **字节流读取时,读到一个字节就返回一个字节:而字符流是字

Java API —— IO流(数据操作流 & 内存操作流 & 打印流 & 标准输入输出流 & 随机访问流 & 合并流 & 序列化流 & Properties & NIO)

1.操作基本数据类型的流 1) 操作基本数据类型 · DataInputStream:数据输入流允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型.应用程序可以使用数据输出流写入稍后由数据输入流读取的数据. · DataOutputStream:数据输出流允许应用程序以适当方式将基本 Java 数据类型写入输出流中.然后,应用程序可以使用数据输入流将数据读入. package datastreamdemos; import java.io.*; /** * Created b

java中IO流相关知识点

package zdbIO; import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.OutputStream; public class OutputStreamDemo1 { /**     * @throws IOException      * @throws IOException

Java文件IO流的操作总结

流就是管道,向管道里面写数据用输出流.write 从管道里面读数据,用输入流.read 流,按照不同的维度有不同的分类,按照从流中每次读取数据单位不同,划分为字节流字符流 按照流-对应操作的角色的不同(是IO设备,还是其他流)是否能够直接向特定的IO设备如文件.网络.磁盘等,能够直接与这些进行读写的称之为节点流, 对节点流进一步封装的流,通过封装后的流来实现读写功能,处理流也被称为高级流 流和数组不一样,不能通过索引读写数据.在流中,你也不能像数组那样前后移动读取数据,除非使用RandomAcc