java 板


LINE

※ 引述《neverfly (neverfly)》之铭言: : 我想做的是利用DOM产生一份XML文件, : 然後用HTTP协定传送到自己写的java servlet。 : 原本的做法是先将XML文件存成一个档案, : 然後再用post的方式将档案传送到java servlet。 : 但现在的问题是, : 在实际运作的环境中,我并没有写入档案的权限, : 也就是说一切只能在记忆体中完成。 : 假设产生XML文件的部份是这样写: : DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); : DocumentBuilder db = dbf.newDocumentBuilder(); : Document doc = db.newDocument(); : Element book = doc.createElement("book"); : doc.appendChild(book); : doc是完整的XML结构,我原本是用这样的方式将XML存在sample.xml中: : TransformerFactory tfactory = TransformerFactory.newInstance(); : Transformer transformer = tfactory.newTransformer(); : DOMSource source = new DOMSource(doc); : StreamResult result = new StreamResult(new File("sample.xml")); : transformer.transform(source,result); 不是很确定你用的builder的结构 , 所以不晓得他有没有直接取得内文的函示, 不过根据我对 java.io 抽象介面的了解跟参阅API後得到的消息, StreamResult 可以接 File跟 OutputStream 所以理论上你可以送一个 ByteArrayOutputStream 给他 , 再透过他取得他写完之後的结果. for example + ByteArrayOutputStream byteOutput = new ByteArrayOutputStream(); * StreamResult result = new StreamResult(byteOutput); : transformer.transform(source,result); //ps 如果需要指定编码 则用toString(String encoding) + String body=byteOutput.toString(); : 然後再这样传送到url,也就是我写的servlet上: 这边就不需要对档案操作了. - File f = new File("sample.xml"); : URL url1 = new URL(url); : conn = (HttpURLConnection)url1.openConnection(); : conn.setRequestMethod("POST"); : conn.setRequestProperty("Content-Type", : "application/x-www-form-urlencoded"); : conn.setRequestProperty("Connection", "Keep-Alive"); : conn.setUseCaches(false); : conn.setDoOutput(true); : osw = new OutputStreamWriter(conn.getOutputStream()); - fr = new FileReader(f); - br = new BufferedReader(fr); - while((str = br.readLine()) != null) { - osw.write(str); - osw.write(c); - } osw.write(body); : osw.flush() ; : osw.close() ; : 请问一下,应该怎麽修改我的程式, : 才能够直接把doc,利用HTTP协定传送出去呢?谢谢。 当然很重要的前提是 , 记忆体要够大 , 你可以测测看 , 抽象介面的好处就是你可以很简单的替换其中一个成员 , 来达到不同目的, 不然偶尔也是会有因为结构面的妥协 , 所以破坏抽象介面的状况 ,不过io应该是还好 . :p -- What do you want to have ? / What do you have? 从书本中,你可以发现我的各种兴趣。 从CD中,你可以了解我所喜欢的偶像明星。 或许从文字你很难以了解一个人,但从物品可以。 My PPolis , My past. http://ppolis.tw/user/Tony --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.128.219.202 ※ 编辑: TonyQ 来自: 220.128.219.202 (09/04 11:20)
1F:推 neverfly:大感谢,我再试试看 09/04 23:40







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Tech_Job 或 站内搜寻

TOP