首页 > 代码库 > IO-转换流
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); } }
IO-转换流