java解析txt里的数据
比如txt里的是多条记录:格式如下张三,男,20lisi,男,20就写两条吧。怎么把这两条记录读出来(不要出现乱码问题),并放到List<Student>里去。本人对流的...
比如txt里的是多条记录:格式如下
张三,男,20
lisi,男,20
就写两条吧。
怎么把这两条记录读出来(不要出现乱码问题),并放到List<Student>里去。
本人对流的读写很白痴,求详细代码,感谢万分
文件名就为:1.txt吧。Student类就三个属性好了,name,sex,age。 展开
张三,男,20
lisi,男,20
就写两条吧。
怎么把这两条记录读出来(不要出现乱码问题),并放到List<Student>里去。
本人对流的读写很白痴,求详细代码,感谢万分
文件名就为:1.txt吧。Student类就三个属性好了,name,sex,age。 展开
7个回答
展开全部
这个是文本流,先把文本读到内存中,再根据固定的格式去解析。按照换行解析
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("找不到指定的文件!");
}
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("找不到指定的文件!");
}
展开全部
示例代码如下所示,希望对你有帮助:
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();
}
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关掉。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
最简单的办法就是用Java中的BufferedReader来读取,BufferedReader可以一行一行的读。然后用String类的split方法按","把每行的数据分割成数组,然后数组里其它已经有创建一个Student对象包含的所有东东了。在循环的最后记得把创建出来的Student对象add到List中哦。
具体代码上面几位都粘出来了,我就不再重复了。纯手打,希望楼主采纳
具体代码上面几位都粘出来了,我就不再重复了。纯手打,希望楼主采纳
追问
他们貌似都有点小问题,怎么循环打印每个Student呢,上面代码貌似只能读一条,能详细点么,最好加我qq947613622
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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("找不到指定的文件!");
}
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("找不到指定的文件!");
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个是文本流,先把文本读到内存中,再根据固定的格式去解析。按照换行解析
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询