haohaoxueBC 2019-03-07 21:05 采纳率: 50%
浏览 464

java从文本中获取内容放入容器中,但是打印容器的时候只打印出了文本最后一行。

**下面两张图是关于我删掉了lines = "";和加了lines += lines;的情况,最下面两行字还有具体解释,谢谢各位能浏览我的问题
**

问题出来return值上面,怎么能成功的return lines

package hotel1;

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

import hotel.CloseStreamMethod;

public class ImportData{
public ArrayList roomsLists = new ArrayList();

public static void main(String[] args) {
    ImportData ip = new ImportData();
    ip.importRooms();
}


public String importData(){

    File src  = new File("/Users/handsomeboy/eclipse-workspace/Coursework/src/hotel1/rooms.txt");

    BufferedReader br = null;

    String lines = null;
    try {
        br = new BufferedReader(new FileReader(src));
        String line = null;
        while((line = br.readLine()) != null) {
            lines = "";
            lines += line;
        }

    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        CloseStreamMethod csm = new CloseStreamMethod();
        csm.close(br);
    }
    return lines;
}
public void importRooms() {

    String[] content = importData().split("\n");
    for (String row : content) {
        if(row != null) {
        String[] contents = row.split(",");
          if (contents.length == 5) {
            roomsLists.add(new Rooms(Integer.parseInt(contents[0]),
                    RoomType.valueOf(contents[1].toUpperCase()),
                    Double.parseDouble(contents[2]),
                    Integer.parseInt(contents[3]),contents[4]));
          }
        }
    }
    System.out.println(roomsLists);
}

}

输出内容:
[
RoomNumber: 301, Type: FAMILY, Price: 90.0, Capacity: 4, Facilities: own bathroom]

文本内容:
101,double,80.00,2,own bathroom
102,double,80.00,2,own bathroom
103,twin,70.00,2,shared bathroom
104,twin,70.00,2,shared bathroom
201,double,80.00,2,own bathroom
202,single,70.00,1,own bathroom
301,family,90.00,4,own bathroom

图片说明![!
图片说明
加了+号的一开始试过但是没有用,还有不加lines = "";不会打印出字符串,真的试了很多很多方法,但是改不出来,感谢各位能帮忙debug.

补充一下如果不加lines = "";的话就不能return lines,加了才能成功返回lines值,我也不知道什么,如果不加lines = ""; 打印imporData是可以成功答应所有的内容,
但是不能返回lines的值。

  • 写回答

4条回答

  • MLi_hb 2019-03-08 08:30
    关注

    你自己去看看importData()方法里的while逻辑就是了,这种情况又不复杂,自己看一遍逻辑或者是debug一下不就行了

    评论

报告相同问题?

悬赏问题

  • ¥15 把Excel导入MATLAB显示错误怎么解决?
  • ¥15 Java中消息和缓存如何使用
  • ¥50 易语言把MYSQL数据库中的数据添加至组合框
  • ¥20 求数据集和代码#有偿答复
  • ¥15 关于下拉菜单选项关联的问题
  • ¥20 java-OJ-健康体检
  • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
  • ¥15 使用phpstudy在云服务器上搭建个人网站
  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx