我要把视频以字节的形式存储到xml中保存,不是一个视频,由于视频比较大,所以不能用jdom,会出现内存溢出,我想直接用流的形式,但是解析的时候我应该怎么解析啊,如果按字符解析,还原会去不能打开,可能是编码问题,如果直接用字节流就能辨认出xml的标签,请高手指点
解决方案 »
- 求个torque整合struts1,spring的demo
- 晒晒第一次面试
- java急需高手来请教~~
- 请问怎样用Ajax和script绑定省份下的市区(和spring集成的开发模式)
- 我正在找工作
- JBoss集群为什么性能还下降了?
- 关于通过t3协议访问数据源所引发的问题?急,在线等待!
- 我的配置为什么老连部上SQL,我的环境是TOMCAT5+ECLICPSE
- 最后100分!!!!!!!!!Struts1.1的validators frameword如何使服务器端验证生效?
- 请教大家一个很急的问题
- 实体 bean 查询 异常,请高手帮个忙
- jfreechart生成的柱状图和曲线图,横轴上的名称倾斜45度
using System.IO;
using System.Xml;
2、文件夹中存在001.jpg图片
3、生成一个docSave.xml文件//*********************************
{
XmlDocument myXmlDoc = new XmlDocument();
myXmlDoc.LoadXml("<picture><name>picture</name></picture>"); XmlElement elem = myXmlDoc.CreateElement("image"); // 打开图片文件,利用该图片构造一个文件流
FileStream fs = new FileStream("../../001.jpg",FileMode.Open);
// 使用文件流构造一个二进制读取器将基元数据读作二进制值
BinaryReader br = new BinaryReader(fs); byte[] imageBuffer = new byte[br.BaseStream.Length]; br.Read(imageBuffer,0,Convert.ToInt32(br.BaseStream.Length)); string textString = System.Convert.ToBase64String(imageBuffer); fs.Close();
br.Close(); XmlText text = myXmlDoc.CreateTextNode(textString); myXmlDoc.DocumentElement.AppendChild(elem);
myXmlDoc.DocumentElement.LastChild.AppendChild(text); myXmlDoc.Save("../../docSave.xml"); MessageBox.Show("读写结束!");
catch(Exception ex)
{
MessageBox.Show(ex.ToString());
}
//************************************************
//生成后的Xml文档
//******<picture>
<name>picture</name>
<image>......</image>
</picture>//*************************************************
//测试上一程序
//***********说明:读取docSave.xml中的image节点,将其存为图片格式002.jpg. try
{
int readByte = 0;
int bytesToRead = 1044;
XmlTextReader xmlTxtRd = new XmlTextReader("../../docSave.xml");
FileStream fs = new FileStream("../../002.jpg",FileMode.Create);
BinaryWriter bw = new BinaryWriter(fs); byte[] base64buffer = new byte[bytesToRead];
while(xmlTxtRd.Read())
{
if (xmlTxtRd.NodeType == XmlNodeType.Element && xmlTxtRd.Name == "image")
{
do
{
readByte = xmlTxtRd.ReadBase64(base64buffer,0,bytesToRead);
bw.Write(base64buffer,0,readByte);
}
while( bytesToRead<= readByte);
}
} bw.Flush();
bw.Close();
fs.Close(); xmlTxtRd.Close();
MessageBox.Show("读写结束!");
}
catch(Exception ex)
{
MessageBox.Show(ex.ToString());
}
这是个读取图片的例子,你可以看着改改读取视频流