解析测试类:
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);
}
}
分享到:
相关推荐
在本文中,我们将深入探讨如何在Spring Boot应用中读取本地JSON文件,这是一个常见的后端开发任务,尤其在处理配置数据或进行数据测试时。Spring Boot以其简洁的配置和强大的功能,使得Java开发者能轻松地构建微服务...
在Java编程中,读取本地SQLite数据库(.db文件)是一项常见的任务,特别是在移动应用开发或者需要离线存储数据的场景下。SQLite是一种轻量级的、开源的关系型数据库,它不需要单独的服务器进程,可以直接在应用程序...
在Java编程环境中,读取数据库表并将其转换为SQL文件是一项常见的任务,特别是在数据迁移、备份或测试场景中。下面将详细介绍如何实现这个过程,并基于给出的标题和描述进行讲解。 1. **配置文件读取**: 首先,...
本教程将详细讲解如何在Idea中使用Java解析JSON文件,并将数据有效地导入到MySQL数据库。 首先,我们需要理解JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器...
Python解析DBC文件,主要依赖于第三方库,如`canmatrix`。`canmatrix`是一个强大的工具,支持读取、修改和导出DBC文件,以及进行DBC相关的计算和转换。安装这个库可以使用以下命令: ```bash pip install canmatrix...
在本话题中,我们将深入探讨cfg文件的解析,了解如何读取和写入这些配置文件,并进行数据库连接的测试。 首先,cfg文件是一种常见的配置文件格式,用于存储应用程序或服务的设置。在数据库系统中,它通常包含诸如...
本示例着重介绍如何在C#中读取ini配置文件,并将其应用于数据库的外部连接,特别是针对Access数据库。 首先,让我们理解什么是ini配置文件。INI文件是一种文本格式的配置文件,常用于存储应用程序的设置和参数。...
接着,`ReadWritetest.java`文件很可能是执行实际读写操作的测试类。它可能包含`BufferedReader`和`BufferedWriter`等IO流的使用,用于高效地从文件读取数据和向文件写入数据。读取文件时,`BufferedReader`通常用于...
在实际项目中,可以通过编写单元测试或者集成测试来确保ini文件读取和解析功能的正确性。使用`testfile`作为测试数据,编写测试用例,检查读取的配置信息是否与预期一致。 总之,在Android项目中读取`ini`配置文件...
QT开发的本地升级工具是一种基于QT框架的软件更新解决方案,其主要目的是确保应用程序能够便捷、安全地进行数据库、表格、数据、XML配置文件以及DLL动态链接库的更新。QT是Qt Company开发的一种跨平台的应用程序开发...
通常,一个测试用例会包含多个测试方法,每个方法对应一个特定的功能点,比如测试读取文件是否成功,测试记录遍历是否准确,或者测试字段信息提取是否无误。测试用例对于确保代码的稳定性和可靠性至关重要。 "新建...
在C#中,读取CSV或txt文本文件通常使用`System.IO`命名空间下的`StreamReader`类。首先,需要打开文件流,然后逐行读取内容。以下是一个简单的示例: ```csharp using System.IO; // 打开文件 using ...
该文件可能是代码示例、配置文件或者是用于测试的数据库表结构。 总的来说,这个工具或功能体现了编程领域的一个重要原则:自动化重复性工作,以提高生产力。通过这种方式,开发者可以更专注于业务逻辑和核心功能的...
`ConfigurationManager`类提供了读取和修改配置文件的方法,例如`AppSettings`属性用于获取`<appSettings>`部分的键值对,`ConnectionString`属性则用于处理数据库连接字符串。 测试`app.config`读取速度的方法通常...
在实际开发中,为了提高代码的可复用性和可测试性,通常会将配置文件的读取封装到一个单独的类或服务中,比如`ConfigService`,然后提供方法供其他组件调用,例如: ```java public class ConfigService { ...
在C++中,我们需要解析这个二进制文件,读取并存储IP数据,以便后续查询。 为了实现IP查询功能,我们可以创建一个名为`IPQuery`的C++类。这个类应该包含以下几个关键成员: 1. **数据库文件路径**:用于保存纯真IP...
接下来,我们将使用C#的System.Xml命名空间中的类来读取和解析XML文件。主要涉及的类有XmlDocument、XmlNode和XmlNodeList。以下是一个简单的示例代码,展示了如何读取并解析XML文件: ```csharp using System; ...
测试用例`JavaDBFReaderTest.java`通常会演示如何使用`javadbf-0.4.0.jar`库来读取和解析DBF文件。以下是一个可能的测试用例结构: ```java import org.junit.Test; import static org.junit.Assert.*; public ...
在Java编程中,解析资源文件是一项常见的任务,它涉及到读取和操作项目中的文本、配置、图片等非代码数据。本教程将深入讲解如何在Java中处理资源文件,以及使用jbom解析工具的相关知识。 首先,理解资源文件的定位...