java读取txt写入数据库的问题.

问题描述

有一个txt文档,格式如下:[分类名] 文本内容[分类名] 文本内容[分类名] 文本内容如何写入数据库中(oracle 10g)要求 [] 不写入数据库,分类名和文本内容用空格隔开,各行之间有空格,如果分类名相同则只能在数据库中存在一条记录,而分类名相同的文本内容都要追加到这条记录上.图片在附件里 问题补充:李石雄 写道

解决方案

long start = System.currentTimeMillis();File file = new File("test.txt");Map<String, String> map = new HashMap<String, String>();try {FileInputStream fis = new FileInputStream(file);InputStreamReader isr = new InputStreamReader(fis);BufferedReader bf = new BufferedReader(isr);String str = "";while((str = bf.readLine()) != null){//String[] s = str.split(" ");//System.out.println(str);if(!"".equals(str.trim())){String[] s = new String[2];s[0] = str.substring(0,str.indexOf(" "));s[1] = str.substring(str.indexOf(" ")+1);//for (int i = 0; i < s.length; i++) {if(s[0].indexOf("[") != -1){String bookName = s[0].substring(1,s[0].length() - 1);if(map.containsKey(bookName)){String bookNames = map.get(bookName) + "," + s[1];map.put(bookName, bookNames);}else{map.put(bookName, s[1]);}//}}}}for (Iterator iterator = map.entrySet().iterator(); iterator.hasNext();) {Entry<String, String> type = (Entry<String, String>) iterator.next();System.out.println(type.getKey() + ":" + type.getValue());}long end = System.currentTimeMillis();System.out.println(end - start);} catch (Exception e) {e.printStackTrace();}我想这个方法更好
解决方案二:
相比JAVA复杂的硬代码,用集算器做会比较简单,还能方便嵌入JAVA(参考http://blog.raqsoft.cn/?p=4792 ),脚本如下:A1=file("E:\s.txt").import@i()A2=A1.select(~).(~.array@t("")).new(~(1):分类,~(2):内容)//去空行,创建分类和内容列的序表A3=A2.group(分类).new(分类.~,~.(内容).string():内容)//按分类分组,将内容拼接到一起A4 >db.update(A3,tableName,col1:分类,col2:内容)
解决方案三:
上面那个方法好像没有什么局限性啊 好像可以符合你的要求吧
解决方案四:
最后一行不能有回车
解决方案五:
这个方法局限性很大,每行后面也要空格,如果每行后面没空格应该放在while循环里
解决方案六:
long start = System.currentTimeMillis();File file = new File("test.txt");Map<String, String> map = new HashMap<String, String>();try {FileInputStream fis = new FileInputStream(file);InputStreamReader isr = new InputStreamReader(fis);BufferedReader bf = new BufferedReader(isr);String str = "";StringBuffer sb = new StringBuffer();while((str = bf.readLine()) != null){sb.append(str);}str = sb.toString();String[] s = str.split(" ");for (int i = 0; i < s.length; i++) {if(s[i].indexOf("[") != -1){String bookName = s[i].substring(1,s[i].length() - 1);if(map.containsKey(bookName)){String bookNames = map.get(bookName) + "," + s[i+1];map.put(bookName, bookNames);}else{map.put(bookName, s[i+1]);}}}for (Iterator iterator = map.entrySet().iterator(); iterator.hasNext();) {Entry<String, String> type = (Entry<String, String>) iterator.next();System.out.println(type.getKey() + ":" + type.getValue());}long end = System.currentTimeMillis();System.out.println(end - start);} catch (Exception e) {e.printStackTrace();}不知道符不符合你的要求
解决方案七:
这个方法更好,上个方法有局限性 建议楼主用这个方法:public static void main(String[] args) {String str="[分类名] 文本内容 [分类名] 文本内容";str =str.replace("[", "-");String [] strs = str.split("-");for(int i=0;i<strs.length;i++){if(!strs[i].equals("")){String [] s = strs[i].split("]");String title = s[0];String content = s[1];System.out.println("标题:"+title+"====="+"内容:"+content);}}}打印内容:标题:分类名=====内容: 文本内容 标题:分类名=====内容: 文本内容取出值后楼主应该会添加入库吧 呵呵
解决方案八:
可以试下这种方法 public class test {public static void main(String[] args) {String str="[分类名] 文本内容 [分类名] 文本内容";String [] strs = str.split(" ");for(int i=0;i<strs.length;i++){if(!strs[i].equals("")){String [] s = strs[i].split("]");String title = s[0].replace("[", "");String content = s[1];System.out.println(title+"===="+content);}}}}打印出来的值为 :分类名==== 文本内容分类名==== 文本内容
解决方案九:
我想请问一下 [分类名]和 “文本内容”之间是否有空格呢?

时间: 2024-08-14 10:45:48

java读取txt写入数据库的问题.的相关文章

Java读取txt文件和写入txt文件的简单实例_java

写Java程序时经常碰到要读如txt或写入txt文件的情况,但是由于要定义好多变量,经常记不住,每次都要查,特此整理一下,简单易用,方便好懂! package edu.thu.keyword.test; import java.io.File; import java.io.InputStreamReader; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileInputStream;

excel文件-怎样通过JSP页面上传个Excel文件,并实现Java读取EXCEL存入数据库

问题描述 怎样通过JSP页面上传个Excel文件,并实现Java读取EXCEL存入数据库 用的语言是servlet+jsp+mysql和后面两个包commons-fileupload-1.3.1.jar jxl.jar 在线等,有没有会这个代码的大神 解决方案 两篇上传的,一篇jxl操作excel的.拼起来就是你要的http://www.the5fire.com/JSP%E4%B8%8A%E4%BC%A0%E6%96%87%E4%BB%B6%E7%AE%80%E5%8D%95%E5%AE%9E%

java读取txt数据出乱码

问题描述 java读取txt数据出乱码 用java读取txt文件中的内容: bufferedReader = new BufferedReader(new InputStreamReader( new FileInputStream(filePath),"GBK")); String line = null; while ((line = bufferedReader.readLine()) != null) { System.out.println(line);} 但是出来乱码. 如

Java读取txt文件的方法_java

java读取txt文件内容.可以作如下理解: 首先获得一个文件句柄.File file = new File(); file即为文件句柄.两人之间连通电话网络了.接下来可以开始打电话了. 通过这条线路读取甲方的信息:new FileInputStream(file) 目前这个信息已经读进来内存当中了.接下来需要解读成乙方可以理解的东西 既然你使用了FileInputStream().那么对应的需要使用InputStreamReader()这个方法进行解读刚才装进来内存当中的数据 解读完成后要输出

Java读取、写入文件如何解决乱码问题_java

读取文件流时,经常会遇到乱码的现象,造成乱码的原因当然不可能是一个,这里主要介绍因为文件编码格式而导致的乱码的问题.首先,明确一点,文本文件与二进制文件的概念与差异. 文本文件是基于字符编码的文件,常见的编码有ASCII编码,UNICODE编码.ANSI编码等等.二进制文件是基于值编码的文件,你可以根据具体应用,指定某个值是什么意思(这样一个过程,可以看作是自定义编码.) 因此可以看出文本文件基本上是定长编码的(也有非定长的编码如UTF-8).而二进制文件可看成是变长编码的,因为是值编码嘛,多少

java读取txt中的科学计数法表示的数字

问题描述 java怎么读取txt中的科学计数法表示的数字啊,比如3.843137e-013.764706e-013.803922e-013.764706e-013.725490e-01,想把他们存到数组中去,求代码 解决方案 解决方案二:我知道了已经解决了解决方案三:是怎么做的写出来呀!照顾一下路人的感受啊!

java读取txt文件

问题描述 求教高手:如何用java实现读取txt文件?(如:D盘a.txt)谢谢....新手 解决方案 解决方案二:!天哪.这样问的话,你的分肯定不够用.你百度一下,多的是例子啊.BufferedReaderreader=newBufferedReader(newInputStreamReader(System.in());随手写的,你百度吧.解决方案三:哦,看错题了还.BufferedReaderreader=newBufferedReader(newFileReader(newFile("D

java读取txt繁体字问题

问题描述 txt文件中有繁体字.在jsp中显示的是?号.怎么将繁体字显示出来,请大家帮忙看下in = new BufferedReader(new FileReader(strAbsPath + "//ttt.txt"));String f="~~~";while((str = in.readLine()) != null){ String tos = str;应该怎么转? 解决方案 将txt文件另存为.在另存对话框中,选择编码项为UTF-8.再将读取到的内容字符串

java 读取txt文件,请高手指教!

问题描述 882359811.5882359926188235913492882359227018823593065588235935220.588235935830.588235942160.588235948713.588235949170.5882359512418823599180188235999521882359100331882359113222882359131535882359155352882359140570.58823591558758823591481338823592