怎样用Java实现从文本文档中读取数据并存入数据库
不知道你要什么样的文本,文本中的内容是否是有格式的:这里提供下思路,供参考:1.文本文件,基本上式字符格式的了,可以用Reader io流2.如果是格式化的文本,可以按数据的长度读取, readInt readByte...3.保存到数据库 当然用JDBC了,如果你读取出来封装成POJO了,也可以选择 OM框架 import java.io.BufferedReader;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStreamReader;/** * 文件读取和写入数据库 * @author 樊云升 * */public class FilesReader { public FilesReader(){ } /** * 读取文件内容 * @param FILE * @return */ public String re_content(String FILE){ String content=""; try{ BufferedReader bufRead=new BufferedReader(new InputStreamReader(new FileInputStream(FILE))); String str; while((str=bufRead.readLine())!=null){ content+=str+"\r\n"; } }catch(IOException ioe){ ioe.printStackTrace(); } return content; } /** * 将特定字符写入数据库中(原来我写的是重写文件,你这里这里将content写入数据库就OK) * @param path * @return */ public boolean writeFile(String content){ try{ //数据库写入代码 }catch(Exception e){ out.close(); return false; } return true; } public static void main(String[] args) { String content=new FilesReader().re_content("D:\\AJAX.htm"); new FilesReader().writeFile(content); }}
如何在SQLSERVER数据库中存入WORD文档
可以。
SQL Server 2000 可以使用 image 类型,最大可存储 2^31-1 个字节 即 2GB。
或者使用 binary 和 varbinary 类型,最大可存储 8,000 个字节。
未来的SQL Server版本将删除 image 类型,所以 SQL Server 2005 推荐使用 varbinary(max) 类型,最大可存储 2GB。
读取文本文件中的内容存到数据库该怎么实现
不知道你要什么样的文本,文本中的内容是否是有格式的:这里提供下思路,供参考:1.文本文件,基本上式字符格式的了,可以用Reader io流2.如果是格式化的文本,可以按数据的长度读取, readInt readByte...3.保存到数据库 当然用JDBC了,如果你读取出来封装成POJO了,也可以选择 OM框架 import java.io.BufferedReader;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStreamReader;/** * 文件读取和写入数据库 * @author 樊云升 * */public class FilesReader { public FilesReader(){ } /** * 读取文件内容 * @param FILE * @return */ public String re_content(String FILE){ String content=""; try{ BufferedReader bufRead=new BufferedReader(new InputStreamReader(new FileInputStream(FILE))); String str; while((str=bufRead.readLine())!=null){ content+=str+"\r\n"; } }catch(IOException ioe){ ioe.printStackTrace(); } return content; } /** * 将特定字符写入数据库中(原来我写的是重写文件,你这里这里将content写入数据库就OK) * @param path * @return */ public boolean writeFile(String content){ try{ //数据库写入代码 }catch(Exception e){ out.close(); return false; } return true; } public static void main(String[] args) { String content=new FilesReader().re_content("D:\\AJAX.htm"); new FilesReader().writeFile(content); }}
如何实现将word的表格和文本存入数据库中
最近利用空闲时间自己在写一个文件备份工具,因为我磁盘上的很多文件很重要,例如很多PPT和讲义。
所以需要经常备份,而且因为这些文件很多,所以需要增量备份。
我尝试用过windows自带的ntbackup工具,但感觉不是很爽。
它不支持压缩备份,而且界面也有点复杂。
为了响应伟大领袖的“自力更生,丰衣足食”的号召,咱决定自己写一个工具,专门备份到数据库。
支持压缩,支持加密,支持增量。
本文分享一下其中一些重点的技术细节其中一个关键的技术就是将文件使用二进制的方式存放在数据库的varbinary(max)的字段中。
该字段最大允许的长度为2GB。
对于一些小文件,我们可以一次性读取它的所有字节,然后一次提交到数据库/// /// 这个方法演示了如何一次提交所有的字节。
这样导致的结果是:应用程序立即需要申请等同于文件大小的内存/// static void SubmitFileByOnce() { string file = @"F:\功夫熊猫.rmvb";//文件大小为519MB byte[] buffer = File.ReadAllBytes(file); using (SqlConnection conn = new SqlConnection("server=(local);database=demo;integrated security=true")) { using (SqlCommand cmd = conn.CreateCommand()) { cmd.CommandText = "INSERT INTO Files(FileName,FileContents) VALUES(@fileName,@fileContents)"; cmd.Parameters.AddRange( new[] { new SqlParameter("@fileName",file), new SqlParameter("@fileContents",buffer) }); conn.Open(); cmd.ExecuteNonQuery(); conn.Close(); } }}但是,上面的方法有几个问题,主要体现在如果文件比较大的话1. 它需要一次性很大的内存,具体数据等同于文件大小。
因为File.ReadAllBytes方法是将所有字节全部读入到内存。
2. 它会导致提交失败,就是因为数据太大了。
数据库也会拒绝。
那么,我就对这个方法做了一下改进,将文件拆分为5MB一段,也就是说,此时每次申请的内存只有5MB。
这就大大地提高了可用性。
/// /// 这个方法是将文件切分为5MB的块,每次只是提交5MB,所以可能多次提交,但内存占用就比较小 /// static void SubmitFileStepByStep() { string file = @"F:\功夫熊猫.rmvb";//以这个文件为例,大小为519MB,一共需要的时间大约94秒。
还是有点慢的,所以还可能需要进行压缩 FileStream fs = new FileStream(file, FileMode.Open); byte[] buffer = new byte[5 * 1024 * 1024]; int readCount; using (SqlConnection conn = new SqlConnection("server=(local);database=demo;integrated security=true")) { conn.Open(); while ((readCount = fs.Read(buffer, 0, buffer.Length)) > 0) { using (SqlCommand cmd = conn.CreateCommand()) { cmd.CommandText = "INSERT INTO Files(FileName,FileContents) VALUES(@fileName,@fileContents)"; cmd.Parameters.AddRange( new[] { new SqlParameter("@fileName",file), new SqlParameter("@fileContents",buffer) }); cmd.ExecuteNonQuery(); } } conn.Close(); } }这样的话,有一个后果就是一个文件,可能在数据库中会有多条记录。
所以在读取的时候,我们需要对其进行合并static void DownloadFile() { string file = @"F:\功夫熊猫.rmvb"; string destfile = @"E:\Temp\Temp.wmv"; using (SqlConnection conn = new SqlConnection("server=(local);database=demo;integrated security=true")) { using (SqlCommand cmd = conn.CreateCommand()) { cmd.CommandText = "SELECT FileContents FROM Files WHERE FileName=@fileName"; cmd.Parameters.AddRange( new[] { new SqlParameter("@fileName",file), }); conn.Open(); SqlDataReader reader = cmd.ExecuteReader(); FileStream fs = new FileStream(destfile, FileMode.Append, FileAccess.Write); while (reader.Read()) { byte[] buffer = (byte[])reader[0]; fs.Write(buffer, 0, buffer.Length); } fs.Close(); reader.Close(); conn.Close(); } }}本文由作者:陈希章
java中如何用jacob将数据库中的二进制图片存到word中的指定位置
主要用到org.apache.poi 来操作word,而读取数据库图片 通过读取数据库Blob 字段的列然后通过 public static BufferedImage imgChangeBuffer(Blob blob) 方法钩子一个 BufferedImage 然后把这个 BufferedImage 设置到word中,希望能帮上忙。
如何用Java正则表达式提取html中所有的文本和超链接,然后分别存入...
您好,您这样:提取链接的标签文本和url地址将Html文件代码传入string参数s,代码如下:private void Reg_A_Href(string s){string str = s;Regex re = new Regex(@"]+href=\s*(?:'(?[^']+)'|""(?[^""]+)""|(?[^>\s]+))\s*[^>]*>(?.*?)", RegexOptions.IgnoreCase | RegexOptions.Singleline);MatchCollection mc = re.Matches(str);Console.WriteLine(mc.Count);foreach (Match m in mc){info_Add("[href] " + m.Groups["href"].Value);info_Add("[text] " + m.Groups["text"].Value);Console.WriteLine("{0}:{1}", m.Groups["href"].Value, m.Groups["text"].Value);}}
转载请注明出处51数据库 » java实现word文档存入数据库中
蔑视奥可马的普亨大帝