如何用JAVA读取某个文件内容并存储到各变量

例如本机D盘根目录下文件D:\welcome.txt,里面内容如下:

alert welcome $Shanghai 0612 -> $London 0613 (msg:"Welcome to London"; package: books,computers; content:"|A9 B7|"; flight: Pudong; time:1420;sid:20100612; rev:5;)

我需要从这个文件中读出文件的内容(如上),然后把“welcome”存储到变量alert中,将Shanghai存储到变量from中,0612到变量 from_date中,London到变量to中,0613到变量to_date,Welcome to London到变量msg,books,computers到变量package,以此类推,所有的变量都是string的类型。

谢谢!
请最好写出相关代码~不一定要写所有的变量,希望执行程序后system.out.println("alert="+alert);能显示出alert=welcome这样的信息。
回复1楼:有可能信息本身就带有空格符,比如msg:"Welcome to London",其中本身就带有空格。content中也带有空格。
回复2楼:不是写到welcome.txt中,是已经存在了这个txt文件,我需要用java来读取文件提取出这些变量进行其他操作。

给你大概写了几个,是用截字符串的方法
import java.io.BufferedReader;
import java.io.FileReader;

public class FileReadTest {

public static void main(String[] args) throws Exception {
FileReader fw = new FileReader("D:\\welcome.txt");
BufferedReader br = new BufferedReader(fw);

String line = br.readLine();
line = line.replaceAll("alert ", "");
String alert = line.substring(0, line.indexOf(" "));
System.out.println(alert);

line = line.replaceAll(alert, "");
line = line.trim();
String from = line.substring(1, line.indexOf(" "));
System.out.println(from);

line = line.trim();
line = line.substring(line.indexOf(" ") + 1);
String from_date = line.substring(0, line.indexOf(" "));
System.out.println(from_date);

line = line.substring(line.indexOf(" ") + 1);
line = line.substring(line.indexOf("$") + 1);
String to = line.substring(0, line.indexOf(" "));
System.out.println(to);
}

}
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-06-08
主要方法:
public void readText() throws Exception{

FileReader f = new FileReader("D:\welcome.txt");
BufferedReader br = new BufferedReader(f);
String tmp = null;
while((tmp=br.readLine())!=null){
System.out.println(tmp); // 这一步就是获得了tmp表示的txt内容
cop();//..这方法里填写赋值代码,看后面我的解释
}
br.close();
f.close();

}

==
解释,由于不知道你的格式是什么,假如我设定为这一条信息是txt的一行,那么刚刚的代码中的tmp就刚好能表示一条信息。
1,我建立一个 名为 TmpCop的类,里面有你需要的各种变量和方法
2,我接下来要做的就是将tmp字符串表示的信息转变成tmpCop的对象属性
3,我提供一个转换的方法 cop(),就是字符串截取的方法,通过tmp.subString(开始,结束位置) 将需要的信息赋值给tmpCop的属性。
具体的截取方式你可以看看String的类,可以按照字母、关键字截取

这样你以后使用这个tmpCop对象就可以了。
建立一个tmpCop的容器,用ArrayList,封装多条信息的txt内容。

ok,应该没问题了 ,把分给我吧
第2个回答  2010-06-08
这些内容是根据java写到 welcome.txt 中的吗?如果是的话 您在写入的时候可以把您需要提取的内容补全至多少位 比如 shanghai 有8位 如果城市很大 您可以补全至 16位 也就是说在shanghai后面追加8个空格。然后再后面加上#或其他符号用来截取。 取到的数组可以用trim() 去掉空格。 这只是一个思路 您可以考虑一下
那您的这个文件是怎么存进去的?有一个规则吗?请详细说明 谢谢。
因为您的内容很复杂 牵扯到了很多符号等等。截取或取子内容部好取。
如果是些死的话 用substring(x,x);取就行
第3个回答  2010-06-08
以空格来分隔读到的文本内容,然后放到String数组里面,然后再赋值到各个变量就OK了
第4个回答  2010-06-08
需求不明确!
相似回答