1, (8 分 ) 使用程序从网上下载 pdf, 网址为
http://files.saas.hand-china.com/java/target.pdf,保存在本地,
编程时使用带缓冲的读写,将需要保证保存后的 pdf 文件能正常
打开.
解析:只能用字节流来读写,用字符流写入pdf后 文件打不开,程序还与待优化
package com.fansi.com; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; public class Url_File { public static void main(String[] args) { try { URL url = new URL("http://files.saas.hand-china.com/java/target.pdf"); URLConnection conn = url.openConnection(); InputStream is = conn.getInputStream(); BufferedInputStream bis = new BufferedInputStream(is); File file = new File("target.pdf"); FileOutputStream fos = new FileOutputStream(file); BufferedOutputStream bos = new BufferedOutputStream(fos); ]; ){ bos.write(b); } bos.close(); fos.close(); bis.close(); is.close(); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
2, (8 分)实现一个 Socket 服务器端和一个 Socket 客户端,先启动服
务器端,当客户端连接上来后,将第一题中得到的 target.pdf 通过
Stream 发送给客户端,客户端接收并保存为 pdf 文件,并保证 pdf
文件能被正常打开.
服务器端代码,Server.java (字节流)
package com.fansi; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.OutputStream; import java.net.ServerSocket; import java.net.Socket; public class Server { public static void main(String[] args) { try { ServerSocket serversocket = ); while(true){ Socket socket = serversocket.accept(); System.out.println("有客户端连上了"); File file = new File("down.pdf"); FileInputStream fis = new FileInputStream(file); BufferedInputStream bis = new BufferedInputStream(fis); BufferedOutputStream bos = new BufferedOutputStream(socket.getOutputStream()); ]; ){ bos.write(b); } bos.close(); bis.close(); fis.close(); } } catch (IOException e) { e.printStackTrace(); } } }
客户端代码,Client.java(字节流)
package com.fansi; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.net.Socket; import java.net.UnknownHostException; public class Client { public static void main(String[] args) { try { Socket socket = ); BufferedInputStream bis =new BufferedInputStream(socket.getInputStream()); File file = new File("new.pdf"); FileOutputStream fos = new FileOutputStream(file); BufferedOutputStream bos = new BufferedOutputStream(fos); ]; ){ bos.write(b); } bos.flush(); bos.close(); fos.close(); bis.close(); } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
3, (8 分)
Sina 股票数据接口,以大秦铁路(股票代码:601006)为
例,如果要获取它的最新行情,只需访问新浪的股票数据
接口:http://hq.sinajs.cn/list=sh601006 这个 url 会返回
一串文本,例如:
var hq_str_sh601006="大秦铁路, 27.55, 27.25, 26.91,
27.55, 26.20, 26.91, 26.92,
22114263, 589824680, 4695, 26.91, 57590, 26.90, 14700,
26.89, 14300,
26.88, 15100, 26.87, 3100, 26.92, 8900, 26.93, 14230,
26.94, 25150, 26.95, 15220, 26.96, 2008-01-11, 15:05:32";
这个字符串由许多数据拼接在一起,不同含义的数据用逗
号隔开了,顺序号从 0 开始。
0:”大秦铁路”,股票名字;name
1:”27.55″,今日开盘价;open
2
2:”27.25″,昨日收盘价;close
3:”26.91″,当前价格;current
4:”27.55″,今日最高价;high
5:”26.20″,今日最低价;low
编程访问 http://hq.sinajs.cn/list=sz300170 ,解释所得到的数
据,并将生成 XML 数据文件和 JSON 文件,并保存到本地,如:
xml 数据:
xxxxx
< open >xxxxx
……
json 数据:
{name:”xxx”,open:xxxx……}
Json_Xml.java (字符流)
package com.fansi; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import javax.xml.transform.Result; import javax.xml.transform.Source; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerConfigurationException; import javax.xml.transform.TransformerException; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import org.w3c.dom.Document; import org.w3c.dom.Element; import com.google.gson.JsonObject; public class Json_Xml { public static void main(String[] args) { try { URL url = new URL("http://hq.sinajs.cn/list=sz300170"); URLConnection conn = url.openConnection(); InputStreamReader bis = new InputStreamReader(conn.getInputStream()); BufferedReader br = new BufferedReader(bis); String line; String[] res = ]; while((line=br.readLine())!=null){ System.out.println(line); res = line.split(","); } // for(int i=0;i<res.length;i++){ // System.out.println(res[i]); // } res[]=res[].substring(); //System.out.println(res[0]); br.close(); bis.close(); //-----------------json创建 JsonObject object = new JsonObject(); ]); ]); ]); ]); ]); ]); //System.out.println(object.toString()); File f1 = new File("json.txt"); FileOutputStream fis1 = new FileOutputStream(f1); OutputStreamWriter osw1 = new OutputStreamWriter(fis1, "utf-8"); BufferedWriter bw1 = new BufferedWriter(osw1); bw1.write(object.toString()); bw1.close(); osw1.close(); fis1.close(); //---------------------------xml的写 try { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document document = builder.newDocument(); Element root = document.createElement("hand"); Element r1 = document.createElement("name"); r1.setTextContent(res[]); root.appendChild(r1); Element r2 = document.createElement("open"); r2.setTextContent(res[]); root.appendChild(r2); Element r3 = document.createElement("current"); r3.setTextContent(res[]); root.appendChild(r3); Element r4 = document.createElement("high"); r4.setTextContent(res[]); root.appendChild(r4); Element r5 = document.createElement("low"); r5.setTextContent(res[]); root.appendChild(r5); document.appendChild(root); TransformerFactory transformerFactory = TransformerFactory.newInstance(); Transformer transformer = transformerFactory.newTransformer(); transformer.transform(new DOMSource(document), new StreamResult(new File("xml.txt") )); } catch (ParserConfigurationException e) { e.printStackTrace(); } catch (TransformerConfigurationException e) { e.printStackTrace(); } catch (TransformerException e) { // TODO Auto-generated catch block e.printStackTrace(); } } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
汉得第二次考核答案整理(通信,IO,文件等)的更多相关文章
-
近5年常考Java面试题及答案整理(三)
上一篇:近5年常考Java面试题及答案整理(二) 68.Java中如何实现序列化,有什么意义? 答:序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化.可以对流化后的对象进行读写 ...
-
近5年常考Java面试题及答案整理(二)
上一篇:近5年常考Java面试题及答案整理(一) 31.String s = new String("xyz");创建了几个字符串对象? 答:两个对象,一个是静态区的"x ...
-
蓝桥杯java历年真题及答案整理1~20.md
蓝桥杯java历年真题及答案整理(闭关一个月,呕心沥血整理出来的) 1 算法是这样的,如果给定N个不同字符,将这N个字符全排列,最终的结果将会是N!种.如:给定 A.B.C三个不同的字符,则结果为:A ...
-
2018年最新Java面试题及答案整理(持续完善中…)
2018年最新Java面试题及答案整理(持续完善中…) 基础篇 基本功 面向对象特征 封装,继承,多态和抽象 封装封装给对象提供了隐藏内部特性和行为的能力.对象提供一些能被其他对象访问的方法来改变它内 ...
-
常见JVM面试题及答案整理
常见JVM面试题及答案整理 1.什么情况下会发生栈内存溢出 2.JVM内存模型 3.JVM内存为什么要分成新生代,老年代,持久代.新生代中为什么要分为Eden和Survivor. 3.1共享内存区划分 ...
-
C#基础第二天-作业答案-九九乘法表-打印星星
题一:九九乘法表的答案 //正三角 ; i < ; i++) { ; j <= i; j++) { Console.Write("{0}*{1}={2} ", j, i ...
-
java socket通信-传输文件图片--传输图片
ClientTcpSend.java client发送类 package com.yjf.test; import java.io.DataOutputStream; import java.io ...
-
【整理】C#文件操作大全(SamWang)
[整理]C#文件操作大全(SamWang) 文件与文件夹操作主要用到以下几个类: 1.File类: 提供用于创建.复制.删除.移动和打开文件的静态方法,并协助创建 FileStream 对象. msd ...
-
50道Redis面试题及答案整理,史上最全!
在网上看到有关Redis的50道面试题,但是没有给出答案,之前我也在寻找这份Redis面试题的答案,今天特地把答案分享出来. 花了大量时间整理了这套Redis面试题及答案,希望对大家有帮助哈~ 弄明白 ...
随机推荐
-
非在线方式搭建Android开发环境
android 环境搭建 http://jingyan.baidu.com/article/90895e0fba1b5664ed6b0b7e.html android开发环境的搭建(解决sdk下载更新 ...
-
C++虚函数、赋值兼容原则
#include <iostream.h> class A { public: void f1() { cout << "a" << endl; ...
-
如何在WDM中使用xp系统的DMA用来处理数据
最近做了一款pci的视频采集卡(H264压缩),由于数据传输量比较大,所有想采用dma来传输数据,刚开始感觉很简单,后来感觉还是困难重重. DMA 验证监控直接内存访问 (DMA) 的使用.随着 Wi ...
-
Java学习(if wihle switch for语句)
一.if语句 定义:if语句是指如果满足某种条件,就进行某种处理. 语句: if (条件语句){ 执行语句; …… } 上述格式中,判断条件是一个布尔值,当判断条件为true时,{}中的执行语句才会执 ...
-
ASP.NET MVC 随想录
http://www.cnblogs.com/OceanEyes/category/696137.html
-
[ActionScript 3.0] 用TextField的方法getCharIndexAtPoint(x:Number, y:Number):int实现文字在固定范围内显示
有时候我们遇到一行文字过多时必须固定文字的显示范围,但由于中英文所占字节数不一样,所以不能很好的用截取字符的方式去统一显示范围的大小,用TextField的getCharIndexAtPoint(x: ...
-
CodeForces - 987D Fair (BFS求最短路)
题意:有N个城市,M条双向道路连接两个城市,整个图保证连通.有K种物品,但每个城市只有一种,现在它们都需要S种物品来举办展览,可以去其他城市获取该城市的物品,花费是两城市之间的最短路径长度.求每个城市 ...
-
Yii 自带的分页实例
yii自带的分页很好用,简单的几行代码就能把分页搞出来,唯一恼火的是只能写在controller中,所以有时候controller中的方法有点臃肿.废话少说,上代码上图. 一.代码实例: 1.控制器中 ...
-
java解析xml汇总
[目录] 一.[基础知识——扫盲] 二.[DOM.SAX.JDOM.DOM4j简单使用介绍] 三.[性能测试] 四.[对比] 五.[小插曲XPath] 六.[补充] 关键字:Java解析xml.解析x ...
-
【Nginx】发送响应
请求处理完毕后,需要向用户发送http响应,告知客户端Nginx的执行结果.http响应主要包括响应行.响应头部.包体三部分.发送http响应时需要执行发送http头部(发送http头部时也会发送响应 ...