使用流下载数据及读取XML文件在控制台

学习内容:

1.流下载
2.读取XML文件在控制台



一.    使用流下载数据


思路:1.获取URL地址(填入地址),通过url.open方法获得HttpURLConnetion对象

          2.通过HttpURLConnetion对象获得输入流

          3.构造空白文档对象File(设置下载文件名),file.crateNewFile()创建空白文档

          4.构造输出流写入到file文档

          5.创建byte[]数据存储单位                注:正常1G 1024单位,超过1G 1024*4

          6.通过while循环判断输入流!=-1,让输出流写入byte中

          7.关闭相应流

          
参考代码:


public class Text {
public static void main(String[] args) {
InputStream is =null;
OutputStream os =null;
try {
//通过URL获取下载路径
URL url = new URL("http://localhost:8080/Liu/tupian.png");
//通过url.openConnection获取到HttpURLConnection对象
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
//通过HttpURLConnection获取输入流
is = conn.getInputStream();
//构造空的下载文档并创建
File file = new File("学习文件.png");
file.createNewFile();
//构造输出流并写入到文档中
os = new FileOutputStream(file);
//构造字节数组读取信息
byte[] bb = new byte[1024];
//判断条件当输入流没值(等于负一的时候),就让输出流停止工作
while (is.read(bb) != -1) {
//写入文档及刷新
os.write(bb);
os.flush();
}
} catch (Exception e) {
// TODO: handle exception
}finally{
//关闭资源
try {
if (os != null) {
os.close();
}
if (is != null) {
is.close();
}
} catch (Exception e2) {
// TODO: handle exception
}
}
}
}


二.读取XML文件在控制台


思路:主类:

          1.获取URL地址,通过URL地址获得HttpURLConnection
          2.HttpURLConnection获得输入流
    
          3.获得工厂函数factory
         SAXParserFactory factory = SAXParserFactory.newInstance();
    
          4.通过factory获得parser
           SAXParser parser = factory.newSAXParser();
    
          5.通过parser获得XMLReader
            XMLReader reader = parser.getXMLReader();
         
          6.通过reader设置监听器
            reader.setContentHandler(new JianTing());

          7.通过reader设置输入流
            reader.parse(new InputSource(is));


           监听器类:

          1.创建一个新类继承DefaultHandler

          2.重写characters()方法


参考代码:

主类:
public class MyDemo {
public static void main(String[] args) {
InputStream is =null;
//监听
try {
//获取URL地址
URL url = new URL(
"https://files.cnblogs.com/files/guoxinkun/work.xml");
//通过url.open获取Connection
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
//通过conn获取输出流
is = conn.getInputStream();
//获得工厂函数
SAXParserFactory factory = SAXParserFactory.newInstance();
//通过函数调用SAXParser对象
SAXParser parser = factory.newSAXParser();
//通过parser获取reader
XMLReader reader = parser.getXMLReader();
//通过reader设置监听器
reader.setContentHandler(new JianTing());
//通过reader.parse设置输入流
reader.parse(new InputSource(is));
} catch (Exception e) {
// TODO: handle exception
}
}
}


监听类:

public class JianTing extends DefaultHandler{
@Override
public void characters(char[] ch, int start, int length)
throws SAXException {
String neirong =new String(ch,start,length);
System.out.println(neirong);
}
}


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值