`
yzz9i
  • 浏览: 220718 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

读取本地文件解析txt文件 存于数据库(测试类)

阅读更多
  解析测试类:

   package com.file;

import java.io.BufferedReader;

import java.io.File;
import java.io.FileInputStream;

import java.io.InputStreamReader;
import java.util.ArrayList;

import org.dom4j.Branch;

import com.service.iservice.IFlightChangeInfoService;

public class ResolveFlightInfo {

	
	/**
	 * 航班信息解析测试java类
	 * 
	 * */
    public static String readFileContent(String filepath) {  
        try {  
        
            BufferedReader br = null; 
//          new BufferedReader(new FileReader(filepath));  
            InputStreamReader reader = new InputStreamReader(new FileInputStream(new File(filepath)),"GB2312");
            br = new BufferedReader(reader);
            //基元素: "sms,deliver,"10657502022321","","","2011.07.28 11:04","","彭元彬,朱宇英/CA1509北京首都机场-杭州萧山机场2011-07-31 07:55/起飞/总票款1420.0元/保险费0.0元/票号999-2155782847999-2155782848/请持有效身份证件到机场办理手续,如有疑问请致电4008100999-8[中国国航]"  
            String s,str;  //每条数据   
            
            while((s = br.readLine())!=null){  
                //System.out.println("数据记录为:"+s);  
            ArrayList<String[]> recList=new ArrayList<String[]>();  //存储所有解析后的集合
            if (s.indexOf("/")>0) {  //把航变信息排除  (不含"/")
            	
            	String aString=s.replace("/", "\",\"");  //将每行内涵有的 (/) 转为(",")
            	System.out.println("ee"+aString);
            	


              
            	
                String[] recArray = parseRecord(aString);  // 按”""“ 截取  
            	System.out.println(recArray.length+"////////");
               
                
                if (recArray.length>=1) {  //该条记录长度  
                	
                	for (int i = 0; i < recArray.length; i++) {

						System.out.println("||||||||||||||||||"+recArray[i]);
					}
                	String[] mosStrings=minusQuotation(recArray);
                	for (int i = 0; i < mosStrings.length; i++) {
                		System.out.println("-----------------"+mosStrings[i]);
					}
                	//String[] kStrings=null;
                	
                	if (mosStrings[6].split(",").length>0) { //说明存在一条以上
                			int begin = 0;  
                	        int end = 14;  
                		for (int i = 0; i < mosStrings[6].split(",").length; i++) {
							String ph=mosStrings[11].substring(2); //截取票号数组串
							while(end<=ph.length()) {  //判断票号长度截取对应票号值
							//数组strings 接收每条数据进行处理存储
								System.out.println(":mosSt:"+mosStrings[6].split(",").length);
							
							String[] strings={mosStrings[0],mosStrings[1],mosStrings[2],mosStrings[3],mosStrings[4],mosStrings[5],mosStrings[6].split(",")[i++],mosStrings[7],mosStrings[8],mosStrings[9].substring(3,mosStrings[9].length()-1),mosStrings[10].substring(3,mosStrings[10].length()-1),mosStrings[11].substring(2).substring(begin,end),mosStrings[12]};
							
							 begin += 14;  //票号增值
					         end += 14;  
							
					         
					        
					         for (int j = 0; j < strings.length; j++) {  //
					        	 System.out.println("================要存入数据的数组=====================:"+j+":"+strings[j]+"==and=="+strings[j].length());
					        	
					         }
					         System.out.println("====================================================================");
					         recList.add(strings);  //将每条经过处理的数组 添加到集合
				        	
							
							}
						}
					}
                }
                
             }
            System.out.println("recList.size:"+recList.size());
            }
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
        return null;  
    }  
    public static String[] parseRecord(String record) {      
        String[] recArray = record.split(",(?=\")|(?<=\"),");//按引号截取  
  
        //String[] recArray2 = record.  
        return recArray;  
    }  
    public static String[] subRecord(String subrString){  
        String[] subArray=subrString.split("/");//按斜杠截取  
        return subArray;  
    }  
   
    public static String[] ssubRcord(String sstr){  
        String[] ssubArray=sstr.split(",");//按逗号截取  
        return ssubArray;  
          
    }  
    //给字符前后加引号
    public static String fRcord(String str){  
    	String sr="\"str\"";
        return sr;  
          
    }  
     
    /*
     * 去掉数组中每个元素的开头和结尾的引号
     * 
     * */
    public static String[] minusQuotation(String[] recArray) {
		for (int i = 0; i < recArray.length; i++) {
			String str = recArray[i];
			if (null!=str) {
				if(str.indexOf( "\"")==0)
					str = str.substring(1,str.length());//去掉开头的分号
				if(str.lastIndexOf("\"")==(str.length()-1))
					str = str.substring(0,str.length()-1); //去掉最后的分号
			}
			recArray[i] = str;
		}
		return recArray;
	}
    
      
    public static void main(String[] args) {  
       //String filepath = "E:\\sxySMS\\smstest(1).txt";  
    	String filepath ="C:\\Documents and Settings\\Administrator\\桌面\\aa.txt";
        readFileContent(filepath);  
       
      
          
    }  
	
}


分享到:
评论

相关推荐

    Springboot读取本地json文件工程

    在本文中,我们将深入探讨如何在Spring Boot应用中读取本地JSON文件,这是一个常见的后端开发任务,尤其在处理配置数据或进行数据测试时。Spring Boot以其简洁的配置和强大的功能,使得Java开发者能轻松地构建微服务...

    java读取本地.db文件实例

    在Java编程中,读取本地SQLite数据库(.db文件)是一项常见的任务,特别是在移动应用开发或者需要离线存储数据的场景下。SQLite是一种轻量级的、开源的关系型数据库,它不需要单独的服务器进程,可以直接在应用程序...

    java程序读取数据库表 转为sql文件 仅供参考 不得宣传

    在Java编程环境中,读取数据库表并将其转换为SQL文件是一项常见的任务,特别是在数据迁移、备份或测试场景中。下面将详细介绍如何实现这个过程,并基于给出的标题和描述进行讲解。 1. **配置文件读取**: 首先,...

    idea Java 解析json文件并导入mysql数据库

    本教程将详细讲解如何在Idea中使用Java解析JSON文件,并将数据有效地导入到MySQL数据库。 首先,我们需要理解JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器...

    数据库配置文件解析

    在本话题中,我们将深入探讨cfg文件的解析,了解如何读取和写入这些配置文件,并进行数据库连接的测试。 首先,cfg文件是一种常见的配置文件格式,用于存储应用程序或服务的设置。在数据库系统中,它通常包含诸如...

    基于Python的对 汽车电子ECU的通信矩阵数据库文件(.dbc)的解析

    Python解析DBC文件,主要依赖于第三方库,如`canmatrix`。`canmatrix`是一个强大的工具,支持读取、修改和导出DBC文件,以及进行DBC相关的计算和转换。安装这个库可以使用以下命令: ```bash pip install canmatrix...

    C# 读取ini配置文件

    本示例着重介绍如何在C#中读取ini配置文件,并将其应用于数据库的外部连接,特别是针对Access数据库。 首先,让我们理解什么是ini配置文件。INI文件是一种文本格式的配置文件,常用于存储应用程序的设置和参数。...

    读取文件数据并解析成不同数据类型,然后写入磁盘文件。附加功能:对字符串以逗号分割成字段,字段内含逗号

    接着,`ReadWritetest.java`文件很可能是执行实际读写操作的测试类。它可能包含`BufferedReader`和`BufferedWriter`等IO流的使用,用于高效地从文件读取数据和向文件写入数据。读取文件时,`BufferedReader`通常用于...

    QT开发的本地升级工具,实现更新数据库,更新表,更新数据,更新配置文件xml,更新DLL文件

    QT开发的本地升级工具是一种基于QT框架的软件更新解决方案,其主要目的是确保应用程序能够便捷、安全地进行数据库、表格、数据、XML配置文件以及DLL动态链接库的更新。QT是Qt Company开发的一种跨平台的应用程序开发...

    Java读取DBF文件jar包和测试用例

    通常,一个测试用例会包含多个测试方法,每个方法对应一个特定的功能点,比如测试读取文件是否成功,测试记录遍历是否准确,或者测试字段信息提取是否无误。测试用例对于确保代码的稳定性和可靠性至关重要。 "新建...

    android项目中读取ini配置文件

    在实际项目中,可以通过编写单元测试或者集成测试来确保ini文件读取和解析功能的正确性。使用`testfile`作为测试数据,编写测试用例,检查读取的配置信息是否与预期一致。 总之,在Android项目中读取`ini`配置文件...

    C#进行dat文件读写操作

    在C#中,读取CSV或txt文本文件通常使用`System.IO`命名空间下的`StreamReader`类。首先,需要打开文件流,然后逐行读取内容。以下是一个简单的示例: ```csharp using System.IO; // 打开文件 using ...

    自动读取mysql数据库字段并自动生成java属性和set和get方法

    该文件可能是代码示例、配置文件或者是用于测试的数据库表结构。 总的来说,这个工具或功能体现了编程领域的一个重要原则:自动化重复性工作,以提高生产力。通过这种方式,开发者可以更专注于业务逻辑和核心功能的...

    C# 中配置文件app.config读取速度测试

    `ConfigurationManager`类提供了读取和修改配置文件的方法,例如`AppSettings`属性用于获取`&lt;appSettings&gt;`部分的键值对,`ConnectionString`属性则用于处理数据库连接字符串。 测试`app.config`读取速度的方法通常...

    java读取配置文件(axun)

    在实际开发中,为了提高代码的可复用性和可测试性,通常会将配置文件的读取封装到一个单独的类或服务中,比如`ConfigService`,然后提供方法供其他组件调用,例如: ```java public class ConfigService { ...

    纯真IP数据库读取 C++类 源码

    在C++中,我们需要解析这个二进制文件,读取并存储IP数据,以便后续查询。 为了实现IP查询功能,我们可以创建一个名为`IPQuery`的C++类。这个类应该包含以下几个关键成员: 1. **数据库文件路径**:用于保存纯真IP...

    C#中通过XML配置数据库

    接下来,我们将使用C#的System.Xml命名空间中的类来读取和解析XML文件。主要涉及的类有XmlDocument、XmlNode和XmlNodeList。以下是一个简单的示例代码,展示了如何读取并解析XML文件: ```csharp using System; ...

    Java读取DBF文件jar包以及测试用例

    测试用例`JavaDBFReaderTest.java`通常会演示如何使用`javadbf-0.4.0.jar`库来读取和解析DBF文件。以下是一个可能的测试用例结构: ```java import org.junit.Test; import static org.junit.Assert.*; public ...

    java解析资源文件

    在Java编程中,解析资源文件是一项常见的任务,它涉及到读取和操作项目中的文本、配置、图片等非代码数据。本教程将深入讲解如何在Java中处理资源文件,以及使用jbom解析工具的相关知识。 首先,理解资源文件的定位...

Global site tag (gtag.js) - Google Analytics