将数据文件(txt)读入java变量
我有一个包含以下内容的数据文件“inventory.dat”:将数据文件(txt)读入java变量,java,io,Java,Io,我有一个包含以下内容的数据文件“inventory.dat”: Item ID |Item Name |Item Description |Weight |Quantity |Price |Isle
Item ID |Item Name |Item Description |Weight |Quantity |Price |Isle |Bin
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
BK1012923 |#8 x 1" Wood Screws (Qty 8) |#8 x 1" Wood Screws (Qty 8) - Plastic bag |0.04 |144 |0.65 |Isle-N23 |Bin-N23-14-3
BK1022344 |#8 x 1" Wood Screws (Qty 8) |#8 x 1 1/2" Wood Screws (Qty 8) - Plastic bag |0.06 |144 |0.65 |Isle-N23 |Bin-N23-14-3
BK1022344 |#8 x 1" Wood Screws (Qty 8) |#8 x 1 1/2" Wood Screws (Qty 8) - Plastic bag |0.06 |50 |0.65 |Isle-S18 |Bin-S18-01-2
Summary: 338 items Total Value: $219.70
我希望能够将每一条数据读入单独的变量中,这些变量包括项目ID、项目名称、项目描述、重量、数量、价格、Isle和Bin。我将如何使用BufferedReader
应忽略汇总值和总值
import java.io.*;
import java.util.*;
/**
*
*
*/
public class FileRead {
public static void main (String[] argv) {
BufferedReader reader;
String line;
String data;
ArrayList<String> itemID = new ArrayList<String>();
ArrayList<String> itemName = new ArrayList<String>();
ArrayList<String> itemDesc = new ArrayList<String>();
ArrayList<String> weight = new ArrayList<String>();
ArrayList<Integer> quant = new ArrayList<Integer>();
ArrayList<Float> price = new ArrayList<Float>();
ArrayList<String> aisle = new ArrayList<String>();
ArrayList<String> bin = new ArrayList<String>();
try {
reader = new BufferedReader(new FileReader("resources/inventory.dat"));
while ((line = reader.readLine() != null)) {
//
}
}
catch (IOException e)
{
System.err.println(e);
}
}
}
import java.io.*;
导入java.util.*;
/**
*
*
*/
公共类文件读取{
公共静态void main(字符串[]argv){
缓冲读取器;
弦线;
字符串数据;
ArrayList itemID=新的ArrayList();
ArrayList itemName=新的ArrayList();
ArrayList itemDesc=新的ArrayList();
ArrayList权重=新建ArrayList();
ArrayList quant=新的ArrayList();
ArrayList价格=新的ArrayList();
ArrayList通道=新建ArrayList();
ArrayList bin=新的ArrayList();
试一试{
reader=new BufferedReader(新文件读取器(“resources/inventory.dat”);
而((line=reader.readLine()!=null)){
//
}
}
捕获(IOE异常)
{
系统错误println(e);
}
}
}
这是一种方法。我使用了line.split(\\\\;”)
以
作为分隔符来分割行。由于Summary和Total之前的文件中有一个空行,因此可以使用if(line.isEmpty())
您可以通过读取文件并解析数据来获取所需内容。到目前为止,您尝试了什么?请在文件中尝试阅读的地方发布代码,我们可以帮助您解决具体问题。刚刚发布。只是不确定在循环中要做什么为了帮助您启动,
line.split(“|”)
将在每个|处拆分该行,并为您提供一个String
s.forquant.add(Integer.parseInt(l[4].trim())数组代码>它运行到一个数字格式异常,因为它在“144”中读取,在int@vnguyen56.trim()
删除这些空格。这对我很管用。您应该检查什么是l[4]
以查看问题。
try {
reader = new BufferedReader(new FileReader("resources/inventory.dat"));
//ignore first two lines
line = reader.readLine(); //read first line
line = reader.readLine(); //read second line
line = reader.readLine(); //read third line
while (line != null){
if(line.isEmpty())
break;
String [] l = line.split("\\|"); //Split the lines
//Add data
itemID.add(l[0]);
itemName.add(l[1]);
itemDesc.add(l[2]);
weight.add(l[3]);
quant.add(Integer.parseInt(l[4].trim()));
price.add(Float.parseFloat(l[5].trim()));
aisle.add(l[6]);
bin.add(l[7]);
line = reader.readLine();
}
}