当前位置 博文首页 > 白徽的博客:java I/O流 的秘密 字节文件读写核心算法
直接放代码:
边打边学
可能引起你的恐惧的代码那里已经标记好。最下面已经给你解释好了那段标记的代码。恐惧了就看一下解释。激励一下自己。
**这里写了两个类,分别放在不同的文件里面。
/**
*文件输入输出处理程序, 字符编码由charset给出
*文件类型:键盘、CRT、磁盘文本文件、网络文本文件.... ,
*/
package cn.edu.dlnu;
import java.io.*;
import java.net.*;
public class IOFileCopyDemo {
public static void main(String[] args) throws IOException{
InputStream in=null;
OutputStream out=null;
/**
// 1-- 磁盘文件 to 磁盘文件
in=new FileInputStream("src.txt");
out=new FileOutputStream("dest.txt");
*/
/**
// 2 -- 键盘 to 磁盘文件
//恐惧点1
in=System.in;
out=new FileOutputStream("dest.txt");
*/
/**
//3-- 磁盘文件 to 标准输出文件
//恐惧点2
in=new FileInputStream("src.txt");
out=System.out;
/**
// 4-- 键盘 to 标准输出文件
in=System.in;
out=System.out;
*/
/**
//5 -- 网络文件 to 磁盘文件
URL url=new URL("https://www.sina.com.cn/");
in=url.openStream();
out=new FileOutputStream("dest.txt");
*/
/**
//6 -- 网络文件 to 标准输出文件
//梦魇
URL url=new URL(" https://www.sina.com.cn/");
in=url.openStream();
out=System.out;
*/
// 文件读写标准算法
IO.dump(in, out);
System.out.println("File copy结束~~ ");
}
}
import java.io.*;
public class IO {
public static void dump(InputStream src,OutputStream dest)
throws IOException {
int b=-1;
while(true){
b=src.read();
if(b==-1) break;
dest.write(b);
dest.flush();
}
src.close();
dest.close();
}
}
in = System.in;//Ctrl + z 结束
可以在使用它的地方用 System.in 代替 in 。直接使用。你可以直接认为就是别名了。不会影响你的使用。当然了真正的原理需要你自己去搜索了。
别忘了从键盘输入退出的时候需要Ctrl + z 结束。
out = System.out;
跟恐惧1一样的答案。别怕,直接就是别名。
URL url = new URL("https://www.sina.com.cn/");
in = url.openStream();
什么是URL?
就是网址。所以他是下载了该网址的HTML。在网页上鼠标右键选择审查元素即可看到该网站的HTML。
悄悄告诉你爬虫扒数据也是这么干的哦。是不是觉得自己的眼界突然就提升了!
所以这段代码就是把网站的信息给你扒了下来。第一行代码说的是:把我要扒的网站的地址给赋值给 url 变量。
然后第二行:输入流是这个 url 的HTML。