黑马程序员-io读取键盘录入之转换流

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——

自学视频io第二部分最后

这一讲重点部分,明白io流中这么多体系,怎么快速判断用哪种流。。。

1

1.1:明白源:InputStream Reader

1.2:明确目的:OutputStream Writer

2 是否是文本文件

是: 用Reader Writer

不是:用 InputStream OotputStream

3 是否要提高读写效率

是:BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream(“luo.txt”)));

4 流的转换

字节流转换成字符流

InputStreamReader OutputStreamWriter

package com.itheima.www;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintStream;
import java.io.UnsupportedEncodingException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Properties;
import java.util.Scanner;

/**
 *  接受键盘的录入
 *
 * @author myluo
 *
 */
public class ScananerInput {
               public static void main(String[] args) {
                 //方法一   录入打印在控制台上
                //  methodScananer1();
                //方法二    键盘录入写入指定文件
                  //methodScannaner2();
                  //方法三   读取文件打印在控制台上
                //  methodScananer3();
                  //练习  三个明确   把一个图片文件copy到另一个磁盘
                 //  methodCopyImger();
                   //方法五    转换流的由来
                 //  methodInputStreamReader();
                 //  methodInputStreamReader2();
                   //方法六  保存log信息
                 //  methodInfo();
                   //方法七    程序运行时打印系统信息
                   methodSystemInfo();
            }

               //方法七    程序运行时打印系统信息
               private static void methodSystemInfo() {
                // TODO Auto-generated method stub
                   Properties   pro=System.getProperties();
                   try {
                    pro.list(new  PrintStream("x5.txt"));
                } catch (FileNotFoundException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }

            private static void methodInfo() {
                // TODO Auto-generated method stub
                       Scanner   input=new  Scanner(System.in);
                       int   num=0;
                       System.out.print("请输入:");
                       try {
                           num=input.nextInt();
                    } catch (Exception e) {
                        // TODO: handle exception
                        try {
                        PrintStream     ps=new PrintStream("luo.txt");
                        Date  dt=new  Date();
                        SimpleDateFormat   sdf=new   SimpleDateFormat("yyyy-MM-dd   HH-mm-ss");
                        String   date=sdf.format(dt);
                        ps.println(date);
                            e.printStackTrace(ps);
                        } catch (FileNotFoundException e1) {
                            // TODO Auto-generated catch block
                            e1.printStackTrace();
                        }
                    }

            }

            //指定读写的文件的编码格式,默认是GBK,用到了转换流
               private static void methodInputStreamReader2() {
                    // TODO Auto-generated method stub
                    BufferedReader    br=new  BufferedReader(new   InputStreamReader(System.in));

                        BufferedWriter bw=null;

                            try {
                                bw = new   BufferedWriter(new   OutputStreamWriter(new  FileOutputStream("E:/a/luo5551.txt"),"utf-8"));

                                   String  len=null;

                                    try {
                                        while((len=br.readLine())!=null){
                                                bw.write(len);
                                                bw.flush();
                                        }
                                        bw.close();
                                    } catch (IOException e) {
                                        // TODO Auto-generated catch block
                                        e.printStackTrace();
                                    }

                            } catch (UnsupportedEncodingException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                            } catch (FileNotFoundException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                            }

                }

            //指定读写的文件的编码格式,默认是GBK,用到了转换流
           private static void methodInputStreamReader() {
                // TODO Auto-generated method stub
                BufferedReader    br=new  BufferedReader(new   InputStreamReader(System.in));

                    BufferedWriter bw=null;
                    try {
                        bw = new   BufferedWriter(new   OutputStreamWriter(new  FileOutputStream("E:/a/luo555.txt")));
                    } catch (FileNotFoundException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                    String  len=null;

                        try {
                            while((len=br.readLine())!=null){
                                    bw.write(len);
                                    bw.flush();
                            }

                            bw.close();
                        } catch (IOException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }

            }

        //图片的copy
            private static void methodCopyImger() {
                /**
                    * 1 ,明确源和目的
                    *         源:InputStream   Reader
                    *         目的:OutputStream   Writer
                    *
                    * 2:是否是文本文件
                    *         是:Reader   Writer
                    *        不是:InputStream   OutputStream
                    *
                    *   3:(Reader  和  Writer 体系中)是否要提高效率
                    *          BufferedReader   br=new  BufferedReader();
                    *          BufferedWriter   bw=new  BufferedWriter();
                    *
                    */

                   try {
                     //读取图片文件
                    FileInputStream    fs=new FileInputStream("C:/Users/Administrator/Desktop/psb.jpg");
                    //提高读取效率
                    //BufferedReader  br=new  BufferedReader(new  InputStreamReader(fs));
                    //提高效率
                    BufferedInputStream   bis=new  BufferedInputStream(fs);
                    //写入图片文件
                    FileOutputStream   fos=new  FileOutputStream("E:/a/xx2.jpg");
                    //提高写入效率
                    //BufferedWriter   bw=new  BufferedWriter(new  OutputStreamWriter(System.out));
                    BufferedOutputStream  bos=new  BufferedOutputStream(fos);
                    //String   len=null;
                    int  len=-1;
                    byte[]  by=new  byte[1024];
                    try {
                        while((len=bis.read(by))!=-1){
                                bos.write(by,0,len);
                        }

                        bos.flush();
                        bos.close();
                        bis.close();
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }

                } catch (FileNotFoundException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }

            private static void methodScananer3() {
                try {
                    BufferedReader  br=new  BufferedReader(new  InputStreamReader(new  FileInputStream("C:/Users/Administrator/Workspaces/MyEclipse 8.5/System1/luo.tex")));
                    BufferedWriter   bw=new  BufferedWriter(new  OutputStreamWriter(System.out));

                    String   len=null;
                    try {
                        while((len=br.readLine())!=null){
                                  bw.write(len);
                                  bw.flush();
                        }
                        bw.close();
                        br.close();
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }

                  } catch (FileNotFoundException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }

            private static void methodScannaner2() {
                BufferedReader  br=new   BufferedReader(new  InputStreamReader(System.in));
                  try {
                    BufferedWriter  bw=new  BufferedWriter(new  OutputStreamWriter(new FileOutputStream("luo.tex")));
                    String   len=null;
                    try {
                        while((len=br.readLine())!=null){
                              if("a".equals(len)){
                                      break;
                              }

                              bw.write(len.toUpperCase());
                              bw.flush();
                           }
                        bw.close();
                        br.close();
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                  } catch (FileNotFoundException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }

            //键盘录入与打印1
            private static void methodScananer1() {
                /**
                   * 通过字符转换流
                   * 把字节转换成字符
                   *
                   */
                 BufferedReader  br=new BufferedReader(new  InputStreamReader(System.in));  

                 //把读出来对象打印在控制台
                 BufferedWriter  bw=new  BufferedWriter(new  OutputStreamWriter(System.out));

                 //读取字符流
                 String  len=null;
                 try {
                    while((len=br.readLine())!=null){
                               bw.write(len.toUpperCase());
                               //换行
                               bw.newLine();
                               bw.flush();
                     }
                    bw.close();

                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
}


我想要的,我一定会要得到。

时间: 2024-11-10 16:31:54

黑马程序员-io读取键盘录入之转换流的相关文章

黑马程序员——IO——读取一个文件中的文字输出到控制台上

读取一个文件中的文字输出到控制台上 import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; //读取一个文件中的文字 ,输出到控制台上 //读取的是字符文字,因此可以使用字符流来操作 public class FileReaderDemos { public static void main(String[] args) { // TODO Auto-generate

黑马程序员——IO篇

------- android培训.java培训.期待与您交流! ---------- IO(Input Output)流 1.IO流用来处理设备之间的数据传输 2.Java对数据的操作是通过流的方式 3.Java用于操作流的对象都在IO包中 4.流按操作数据分为两种:字节流与字符流 . 字符流的数据字节流其实都能处理,因为无论什么在计算机上最后都是以字节存在的,但是其中有一部分数据它是以文本形式存在的,所以为了方便有了字符流,字符流里融合了编码表,而只有文字用到了编码表,所以字符流用来处理文本

黑马程序员------IO(五)

黑马程序员------IO(五) 1.1  操作对象(示例1)ObjectInputStream与ObjectOutputStream 被操作的对象需要实现Serializable. Serializable:用于给被序列化的类加入ID号,用于判断类和对象是否是同一个版本 类通过实现java.io.Serializable接口以启用序列化功能,Serializable只是一个标记接口. 1 示例1: 2 import java.io.*; 3 4 class ObjectStreamDemo 5

黑马程序员 IO流 文件的分割与合并

---------------------- ASP.Net+Unity开发..Net培训.期待与您交流! ----------------------package cn.itcast.IO; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException;

黑马程序员——IO流总结

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 什么是IO流? IO流是用来处理设备之间的数据传输 有哪些流? 流按操作数据的种类分为:字符流和字节流 流按流的方向分:输入流和输出流 字节流的基类:InputStream和OutputStream 字符流的基类:Writer和Reader 常用写字符流:FileWriter,BufferedWriter,OutputStreamWriter,PrinterWriter 常用读字符流  : F

黑马程序员-IO流

IO概述 IO流用来处理设备之间的数据传输,java 对数据操作的是通过流的方式 java用于操作流的对象都在IO包中. 流按操作数据分为两种:字节流与字符流 流按流向分为:输入流和输出流 字符流对象中融合了编码表.只有文字涉及到编码 字节流的抽象基类: inputStream,OutputStream 字符流的抽象基类: Reader Writer Writer 方法: write(String str)    写入字符串. write(int c)        写入单个字符. write(

黑马程序员——IO——字节流

------ <a href="http://www.itheima.com" target="blank">android培训</a>.<a href="http://www.itheima.comtarget="blank"> java培训</a>.期待与您交流! --------- --IO--字节流 使用字节流写入指定目录下的文件内容 public class FileStream

黑马程序员------IO(三)

1.1 通过字节流演示读取键盘录入. System.out:对应的是标准输出设备,控制台.System.in:对应的标准输入设备:键盘. 代码 InputStream in=System.in; int by=in.read(); sop(by);结束录入 in.close(); 1.1.1 需求:通过键盘录入数据(示例1): 当录入一行数据后,就将该行数据进行打印.如果录入的数据是over,那么停止录入. 分析:键盘本身就是一个标准的输入设备.对于java而言,对于这种输入设备都有对应的对象.

黑马程序员-IO流其他流与File类

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------- 1:其他的流 1: DataOutputStream ;多了一些操作基本数据类型的功能 DataInputStream:读取文件. 用DataOutputStream流写进去的数据,就用DataInputStream流来读取. 1 imp