IO-转换流

java.net.URL类:类 URL 代表一个统一资源定位符,它是指向互联网“资源”的指针
构造方法:
  URL(String spec)根据 String 表示形式创建 URL 对象。
方法:
  openStream():打开到此 URL 的连接并返回一个用于从该连接读入的 InputStream。
需求:使用的流获取www.baidu.com的主页源码,并将源码在控制台输出

public class TestInputStreamReader {
    public static void main(String[] args) {
        try {
            URL url = new URL("http://www.baidu.com");
            InputStream ips = url.openStream();//开到此 URL 的连接并返回一个用于从该连接读入的 InputStream
            InputStreamReader isr = new InputStreamReader(ips,"UTF-8"); //将字节流按照指编码转换成一个字符流
            BufferedReader br = new BufferedReader(isr);
            String str;
            while((str=br.readLine())!=null){
                System.out.println(str);
            }
            br.close();
            isr.close();
            ips.close();
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

    }
}

InputStream:字节输入流
Reader:字符输入流
转换流(处理流)
  InputStreamReader:将InputStream转换为Reader(将字节流转换为字符流),继承了Reader类
  构造函数:
    InputStreamReader(InputStream in) 创建一个使用默认字符集的 InputStreamReader。
    InputStreamReader(InputStream in, Charset cs) 创建使用给定字符集的 InputStreamReader。
  字符集:
    UTF-8,GBK,GB2312....
  常用的方法:
    read() 读取单个字符。
    read(char[] cbuf, int offset, int length) 将字符读入数组中的某一部分。
    close():关闭该流并释放与之关联的所有资源。
BufferedReader:
  readLine();
InputStream--->InputStreamReader--->BufferedReader
OutputStreamWriter:OutputStream---->Writer

public class TestInputStreamReader2 {
    public static void main(String[] args) {
        try {
            InputStream ips = new FileInputStream("D:/aa.txt");//字节输入流
//            InputStreamReader isr = new InputStreamReader(ips);//将字节流转换为字符流
            InputStreamReader isr = new InputStreamReader(ips,"GBK");//将字节流转换为字符流
            BufferedReader br =  new BufferedReader(isr);
            String s;
            while((s=br.readLine())!=null){
                System.out.println(s);
            }
            br.close();
            isr.close();
            ips.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

获取当前开发环境下的编码集

public class TestEncoding {
    public static void main(String[] args) {
        //获取当前开发环境下的编码集
        String str = System.getProperty("file.encoding");
        System.out.println(str);
    }
}
时间: 2024-12-16 11:08:47

IO-转换流的相关文章

Java IO 转换流 字节转字符流

Java IO 转换流 字节转字符流 @author ixenos 字节流 输入字节流:---------| InputStream 所有输入字节流的基类. 抽象类.------------| FileInputStream 读取文件的输入字节流.------------| BufferedInputStream 缓冲输入字节流. 该类内部其实就是维护了一个8kb(8192b)字节数组而已. 该类出现的目的是为了提高读取文件数据的效率. 输出字节流:---------| OutputStream

Java之IO转换流

直接上码: 读取键盘录入数据代码演示: import java.io.IOException; import java.io.InputStream; /** *读取键盘录入的数据,并打印在控制台上. * *键盘本身就是一个标准的输入设备, *对于Java而言, */ public class ReadKey { /** * @param args * @throws IOException */ public static void main(String[] args) throws IOE

转IO转换流

ava IO流总结之转换流 (2012-10-17 10:37:21) 转载▼ 标签: java转换流 字符流 字节 杂谈 分类: Java 1 字节流InputStream                  ->FileInputStreamOutputStream                 ->FileOutputStream 2 . 字符流Reader -> BufferedReader     -> LineNumberReader        -> Inpu

15、IO (转换流、缓冲流)

转换流概述 * A: 转换流概述 * a: 转换流概述 * OutputStreamWriter 是字符流通向字节流的桥梁:可使用指定的字符编码表,将要写入流中的字符编码成字节 * 将字符串按照指定的编码表转成字节,在使用字节流将这些字节写出去 ? 转换流_字符转字节的过程 * A: 转换流_字符转字节的过程 * a.图解 * 详见day24_source/转换流.JPG图片 ? OutputStreamWriter写文本文件 * A: OutputStreamWriter写文本文件 * a:

IO流 流操作规律 转换流的由来

package com.yyq; import java.io.*; /* * 转换流--------指定码表 * 需求: 想将一个文件的数据打印在控制台上 * 源:文件 * 目的:控制台 * 流操作的基本规律: * 最痛苦的就是流的对象有很多,不知道该用哪一个 * * 三个明确来完成: (1)明确 源和目的 * 源: 输入流 (InputStream Reader) * 目的:输出流(OutputStream Writer) * (2)明确操作的数据是否是纯文本 * 是纯文本: 字符流 * 不

理解IO流:InputStream和OutputStream,FileInputStream和FileOutputStream,Reader和Writer,FileReader和FileWriter,BufferedInputStream 和 BufferedOutputStream, BufferedReader 和 BufferedWriter,转换流

/* * 1.理解 "流" ? * 动态性.连续性.方向性. * * 2.在java语言中,将数据的输入/输出称之为 IO流. IO流的分类: * 1) 从方向分: 输入流 , 输出流. (参照计算机的内存) * 将数据送到内存中去称之为输入流.反之,称之为输出流. * * 2) 从处理单位来分: 字节流(8位二进制数据), 字符流(16位二进制数据). * * 3) 从是否有数据源来分: 节点流(有数据源), 处理流(必须套在节点流上). * * 3.在Java语言中,所有流类均来自

java IO 四(转换流的使用)

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

JAVA学习第五十课 — IO流(四)转换流

一.键盘录入 System.out:标准输出设备,控制台 System.in:标准输入设备,键盘 输入演示 输入字符串遇到回车,打印,输入over,输入结束 PS:键盘的录入只读取一个字节,先将字节拼一个字符串,所以需要一个容器,再参与over的判断 import java.io.*; public class Main { public static void main(String[] args) throws IOException { InputStream in = System.in

IO【转换流,打印流,序列化】

编码: 把看的懂,变成看不懂的 String str = "中国"; byte[] bytes = str.getBytes(); System.out.println(Arrays.toString(bytes));解码: 把看不懂的内容,变成能看懂的 String s = new String(bytes); System.out.println(s); java.io.OutputStreamWriter extends Writer OutputStreamWriter:转换流

Java:IO流之转换流

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