java解析txt里的数据

比如txt里的是多条记录:格式如下张三,男,20lisi,男,20就写两条吧。怎么把这两条记录读出来(不要出现乱码问题),并放到List<Student>里去。本人对流的... 比如txt里的是多条记录:格式如下
张三,男,20
lisi,男,20
就写两条吧。
怎么把这两条记录读出来(不要出现乱码问题),并放到List<Student>里去。
本人对流的读写很白痴,求详细代码,感谢万分
文件名就为:1.txt吧。Student类就三个属性好了,name,sex,age。
展开
 我来答
1060436077
推荐于2017-11-25 · TA获得超过582个赞
知道小有建树答主
回答量:2784
采纳率:0%
帮助的人:661万
展开全部
这个是文本流,先把文本读到内存中,再根据固定的格式去解析。按照换行解析
List<Student> list=new ArrayList<Student>();
String encoding = "GBK";

File file = new File("c:/test.txt");

if (file.isFile() && file.exists()) {
InputStreamReader read = new InputStreamReader( new FileInputStream(file), encoding);
BufferedReader bufferedReader = new BufferedReader(read);
String lineTXT = null;
while ((lineTXT = bufferedReader.readLine()) != null) {
String [] stuAttr=lineTXT.toString().split(",");
Student student=new Student();
//解析stuAttr数组封装Student对象
list.add(student);
}
read.close();
}else{
System.out.println("找不到指定的文件!");
}
linzx_520
2012-12-18 · TA获得超过159个赞
知道小有建树答主
回答量:108
采纳率:100%
帮助的人:82.6万
展开全部
示例代码如下所示,希望对你有帮助:

File file = new File("test.txt");
BufferedReader reader = null;
try {
String string = null;
reader = new BufferedReader(new FileReader(file));
while((string = reader.readLine())!=null){
String[] s = string.split(","); //以逗号分隔字符串,注意你的逗号是英文的逗号还是中文的逗号。
Student student = new Student(s[0],s[1],s[2]); s[] 分别是姓名,性别,和年龄 初始化一个student对象,然后加入到list中去。
list.add(student);
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
追问
表示抄上去,死循环了
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
追答
你最后没有将文件读写流reader关掉。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
nice晨之风
2012-12-18
知道答主
回答量:18
采纳率:0%
帮助的人:3.1万
展开全部
最简单的办法就是用Java中的BufferedReader来读取,BufferedReader可以一行一行的读。然后用String类的split方法按","把每行的数据分割成数组,然后数组里其它已经有创建一个Student对象包含的所有东东了。在循环的最后记得把创建出来的Student对象add到List中哦。
具体代码上面几位都粘出来了,我就不再重复了。纯手打,希望楼主采纳
追问
他们貌似都有点小问题,怎么循环打印每个Student呢,上面代码貌似只能读一条,能详细点么,最好加我qq947613622
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友5436656
2012-12-18
知道答主
回答量:32
采纳率:0%
帮助的人:8.9万
展开全部
List<Student> list=new ArrayList<Student>();
String encoding = "GBK";

File file = new File("c:/test.txt");

if (file.isFile() && file.exists()) {
InputStreamReader read = new InputStreamReader( new FileInputStream(file), encoding);
BufferedReader bufferedReader = new BufferedReader(read);
String lineTXT = null;
while ((lineTXT = bufferedReader.readLine()) != null) {
String [] stuAttr=lineTXT.toString().split(",");
Student student=new Student();
//解析stuAttr数组封装Student对象
list.add(student);
}
read.close();
}else{
System.out.println("找不到指定的文件!");
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
29120406
2012-12-18 · TA获得超过805个赞
知道小有建树答主
回答量:608
采纳率:0%
帮助的人:329万
展开全部
这个是文本流,先把文本读到内存中,再根据固定的格式去解析。按照换行解析
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式