如果我要读取一个txt文件,并获取其中的三个字段,请问JAVA代码怎么写,谢谢!

txt文件内容如下:idnumcodecitycardtype11368314010北京市北京移动神州行卡21370102010北京市北京移动全球通卡3136832301... txt文件内容如下:
id num code city cardtype
1 1368314 010 北京市 北京移动神州行卡
2 1370102 010 北京市 北京移动全球通卡
3 1368323 010 北京市 北京移动全球通卡
4 1368322 010 北京市 北京移动神州行卡
5 1368321 010 北京市 北京移动神州行卡
6 1368320 010 北京市 北京移动神州行卡
7 1368319 010 北京市 北京移动神州行卡
8 1368318 010 北京市 北京移动神州行卡
9 1368317 010 北京市 北京移动神州行卡
10 1368325 010 北京市 北京移动神州行卡
展开
 我来答
flyingFish211
2011-03-02 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.5万
采纳率:50%
帮助的人:1.1亿
展开全部
这个容易。下面程序把内容保存到数组里面,其中
[0] = id, [1] = num, [2] = code, [3] = city, [4] = cardtype
想要哪3段就根据对应的下标遍历数组就可以了

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class ReadTxt {

public static void main(String[] args) throws IOException {

String fileName = "data.txt";//要读取的txt文件
List<String[]> list = getFileContent(fileName);//将所有读到的文件放到数组里面

String[] ary = list.get(1);//第一行是标题,所以取第二行

for(String str: ary){
System.out.println(str);//想取其中的任何一段只要按照数组的下标拿就可以了
}

}

private static List<String[]> getFileContent(String fileName) throws FileNotFoundException, IOException {
File file = new File(fileName);
BufferedReader bf = new BufferedReader(new FileReader(file));

String content = "";

List<String[]> contentList = new ArrayList<String[]>();
while(content != null){
content = bf.readLine();

if(content == null){
break;
}

if(!content.trim().equals("")){
contentList.add(content.trim().split("\\s+"));
}

}

bf.close();

return contentList;
}
}

-----------------
1
1368314
010
Beijing
Shenzhouxing
追问
谢谢,不过汉字有乱码,怎么转码?
追答
byte[] ary = content.getBytes("ISO-8859-1"); 用ISO-8859-1试一下,
xugang1225
2011-03-02 · TA获得超过102个赞
知道小有建树答主
回答量:177
采纳率:0%
帮助的人:98.8万
展开全部
br = new BufferedReader(new FileReader("D:\\1.txt"));
String temp = null;

while ((temp = br.readLine()) != null) {
StringTokenizer st = new StringTokenizer(temp);
if(st.countTokens() == 4){
System.out.println(st.nextToken());
}}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式