テキストファイルのデータがどのように見えるかを投稿することから始めます。これはわずか4行で、実際のファイルの長さは数百行です。
Friday, September 9 2011 5:00AM - 11:59PM STH 1102 HOLD DO NOT BOOK
Report Printed on 9/08/2011 at 2:37 PM Page 1 of 1
Friday, September 9 2011 5:00AM - 11:00PM STH 4155 (BOARDROOM) HOLD - DO NOT BOOK
Hold - Do Not Book Report Printed on 9/08/2011 at 2:37 PM Page 1 of 1
Friday, September 9 2011 5:00AM - 11:59PM UC 2 (COMPUTER LAB) HOLD DO NOT BOOK
do not book Report Printed on 9/08/2011 at 2:37 PM Page 1 of 1
Friday, September 9 2011 5:00PM - 11:00PM AH GYM USC ORIENTATION 2011 - REVISED
USC Orientation 2011 Report Printed on 9/08/2011 at 2:37 PM Page 1 of 1
テキストの各小さなセクションは、テキストファイルの1行にあり、何らかの理由で質問形式で表示されない多くのスペースで区切られています。テキストの最初のセクションを、取得しようとしているデータの例として使用します。
これがファイルから取得したいデータです、、、、、Friday
そして行5:00
の読み取り11:59
を無視します。テキストのセクションの2行目のすべての情報も無視されますが、テキストファイル自体では無視されます。すべて1行で。次に、このデータを使用して、各部分を変数に保存します。または、代わりに、データの一部が次のようにフォーマットされることがあります。、、正規表現がこれらのいずれかを検出した場合、前後のその行のすべてのデータを無視できます。STH 1102
HOLD DO NOT BOOK
HOLD DO NOT BOOK
DO NOT BOOK
HOLD - DO NOT BOOK
また、PMが含まれている時間を取得し、24時間形式になるように12を追加したいと思います。
これが私が現在完全に行を読んでいる方法です。そして、ユーザーがscheduleTxt JTextfieldにパスを入力したら、この関数を呼び出すだけです。各行を正常に読み取って印刷できます。
public void readFile () throws IOException
{
try
{
FileInputStream fstream = new FileInputStream(scheduleTxt.getText());
DataInputStream in = new DataInputStream(fstream);
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String strLine;
while ((strLine = br.readLine()) != null)
{
System.out.println (str1);
}
in.close();
}
catch (Exception e){
System.err.println("Error: " + e.getMessage());
}
}
私はこの質問にそこがあることを知っています、うまくいけば、あなたはイムが何を求めているかを理解しているでしょう、何かが不明な場合はただ尋ねてください、ありがとう!牛肉。
更新:このデータの意図を説明するのに役立つかもしれないと思ったのですが、最初にPM時間を24時間形式に変換し、次に4番目のデータに従って(STH 1102
)を使用する挿入関数を呼び出します。行からデータベースに他のデータを挿入するためのODBCドライバー