本文介绍了如何从.txt文件中读取并把数据放到一个对象的数组列表?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经写到目前为止从我目前的基本阵列知识工作,但我只是不知道如何使用ArrayList,或如何从文件中读取。什么到目前为止,我已经写的作品。任何链接或建议,以帮助解决我的code从文件中读取和使用ArrayList会大大AP preciated。谢谢你。


 公共类TestPackages
{
   公共静态无效的主要(字串[] args)
    {
       包testPackages =新包();       testPackages.addPacket(1001,7.37,CA);
       testPackages.addPacket(1002,5.17,CT);
       testPackages.addPacket(1003,11.35,纽约);
       testPackages.addPacket(1004,20.17,MA);
       testPackages.addPacket(1005,9.99,FL);
       testPackages.addPacket(1006,14.91,VT);
       testPackages.addPacket(1007,4.97,TX);       的System.out.println(testPackages);
    }
}-------------------------------------------------- -----------------------------------------
-------------------------------------------------- -----------------------------------------进口java.util.Scanner中;
进口java.io. *;
进口的java.util.ArrayList;公共类套餐
{
   私人包[]发货;
   私人诠释计数;
   私人双totalWeight;   公共包()
   {
      出货=新的数据包[100];
      计数= 0;
      totalWeight = 0.0;
   }   公共无效addPacket(INT的ID号,双重量,字符串州)
   {
      如果(计数== shipment.length)
         INCREASESIZE();      装运[计数] =新的数据包(IDNumber中,体重,状态);
      totalWeight + =体重;
      算上++;
   }   公共字符串的toString()
   {
      字符串报告;      报告=所有数据包的\\ n;
      对于(INT NUM = 0; NUM<计数; NUM ++)
         报告+ =装运[NUM]的ToString()+\\ n;      报告+ =总重量:\\ t​​+ totalWeight +英镑;
      返回报告;
   }   私人无效INCREASESIZE()
   {
      分组[] TEMP =新的数据包[shipment.length * 2];      对于(INT NUM = 0; NUM< shipment.length; NUM ++)
         临时[NUM] =装运[NUM]      出货=温度;
   }
}-------------------------------------------------- -----------------------------------------
-------------------------------------------------- -----------------------------------------公共类包
{
   私人诠释的ID号;
   私人双权重;
   私人字符串状态;   众包(INT的ID号,双重量,字符串州)
   {
      this.idNumber =的ID号;
      this.weight =体重;
      this.state =状态;
   }   公共布尔isHeavy(双重)
   {
      返回(重量大于10);
   }   公共布尔isLight(双重)
   {
      收益率(体重7;);
   }   公共字符串的toString()
   {
      字符串描述=身份证号+的ID号+\\ tWegiht:+重+\\ TSTATE:
      +状态;      返回描述;
   }
}


解决方案

有很多方法可以读取在Java文件里逐行。但是,我使用 utils的preFER。它提供从文件中读取一个非常有用的工具。这是一个行的例子。

 列表<串GT;线= FileUtils.readLines(新文件(文件名));

What I have written so far works from my current knowledge of basic arrays, but I just don't understand how to use an arraylist, or how to read from a file. What I have written so far works. Any links or advice to help fix my code to read from a file and use an arraylist would be greatly appreciated. Thank you.


public class TestPackages
{
   public static void main (String[] args) 
    {
       Packages testPackages = new Packages();

       testPackages.addPacket(1001, 7.37, "CA");
       testPackages.addPacket(1002, 5.17, "CT");
       testPackages.addPacket(1003, 11.35, "NY");
       testPackages.addPacket(1004, 20.17, "MA" );
       testPackages.addPacket(1005, 9.99, "FL");
       testPackages.addPacket(1006, 14.91, "VT");
       testPackages.addPacket(1007, 4.97, "TX");

       System.out.println(testPackages); 
    }
}

-------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------

import java.util.Scanner;
import java.io.*;
import java.util.ArrayList;

public class Packages
{
   private Packet[] shipment;
   private int count;
   private double totalWeight;

   public Packages()
   {
      shipment = new Packet[100];
      count = 0;
      totalWeight = 0.0;
   }

   public void addPacket (int idNumber, double weight, String state)
   {
      if(count == shipment.length)
         increaseSize();

      shipment[count] = new Packet (idNumber, weight, state);
      totalWeight += weight;
      count++;
   }

   public String toString()
   {
      String report;

      report = "All Packets\n";
      for(int num = 0; num < count; num++)
         report += shipment[num].toString() + "\n";

      report += "Total Weight:\t" +totalWeight+" pounds";
      return report;
   }

   private void increaseSize()
   {
      Packet[] temp = new Packet[shipment.length * 2];

      for (int num = 0; num < shipment.length; num++)
         temp[num] = shipment[num];

      shipment = temp;
   } 
}

-------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------

public class Packet
{
   private int idNumber;
   private double weight;
   private String state;

   public Packet(int idNumber, double weight, String state)
   {
      this.idNumber = idNumber;
      this.weight = weight;
      this.state = state;
   }

   public boolean isHeavy(double weight)
   {
      return (weight > 10);
   }

   public boolean isLight(double weight)
   {
      return (weight < 7);
   }

   public String toString()
   {
      String description = "ID number: " + idNumber + "\tWegiht: " + weight + "\tState: " 
      + state;

      return description;
   }
}
解决方案

There are many ways to read a file line by line in java. But I prefer using commons-io utils. It's a very useful tool that provide reading from a file. Here is a one line example.

List<String> lines = FileUtils.readLines(new File(fileName));

这篇关于如何从.txt文件中读取并把数据放到一个对象的数组列表?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

11-03 12:31