我需要解析一个字符串并提取信息以输入到数据库中

时间:2012-03-27 20:49:29

标签: java parsing edi

这里是edifile: ISA * 00 * 00 * 02 * HMES * ZZ * MGLYNNCO * 120321 * 1220 * U * 00401 * 000015676 * 0 * P *:~GS * FA * HMES * MGLYNNCO * 20120321 * 1220 * 15691 * X * 004010〜ST * 997 * 000015730〜AK1 * SM * 18292〜AK2 * 204 * 182920001〜AK5 * A〜AK9 * A * 1 * 1 * 1〜SE * 6 * 000015730〜GE * 1 * 15691〜IEA * 1 * 000015676〜

IN JAVA

我有一个需要解析的EDI文件。我可以获取文件并将其转换为字符串并使用tokenizer将其拆分,我不确定的问题是每个段还有另一个分隔符如何在段分隔符处将其拆分?

public class EdiParserP {

    public static void main(String[] args) {
        //retrieves the file to be read     
        File file = new File(args[0]);

        int ch;
        StringBuffer strContent = new StringBuffer("");
        FileReader fileInSt = null;

        try{
            fileInSt = new FileReader(file);

            while ((ch = fileInSt.read()) != -1)strContent.append((char)ch);
            fileInSt.close();
        }
        catch (FileNotFoundException e)
        {
            System.out.println("file" + file.getAbsolutePath()+ "could not be found");
        } 
        catch (IOException ioe) {
            System.out.println("problem reading the file" + ioe);
        }
        System.out.println("File contents:" + "\n" + strContent + "\n");//used to check to see if file is there
        System.out.print("Length of file" +" " + strContent.length()+ "\n"+ "\n");//used to count the length of the file
        String buffFile = strContent.toString();//used to convert bufferstring to string

        //breaks apart the file with the given delimiter
        StringTokenizer st = new StringTokenizer(buffFile , "*");
        while(st.hasMoreTokens())
        {
            String s =st.nextToken();
            System.out.println(s);
        }
    }
}

我想我的第二个问题是如何检索信息放入数据库,我知道如何连接数据库,以及如何插入,我想,我只是不确定如何从中提取数据这个字符串?谢谢你的帮助

1 个答案:

答案 0 :(得分:0)

也许它不会帮助你到最后,但是不推荐使用StringTokenizer类,你应该使用String类的简单split()方法。

说实话,我不知道你真正想用这个文件做些什么。你想再次分割从StringTokenizer类收到的每个字符串吗?