首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将txt文件中的数据复制到数组

如何将txt文件中的数据复制到数组
EN

Stack Overflow用户
提问于 2013-10-24 16:57:21
回答 3查看 2.3K关注 0票数 0

我正在做一个项目,它需要我将所有的信息从txt文件复制到数组中。txt的内容如下所示。这里我想要的是将所有商品的名称和描述分别放入它的数组中。

代码语言:javascript
运行
复制
GoodTitle        Description            
    Gold       The shiny stuff
    Wheat   What wheaties are made of
    Wood    To make more ships
    Spices  To disguise the taste of rotten food
    Tobacco Smoko time
    Coal    To make them steam ships go
    Coffee  Wakes you up
    Tea Calms you down

到目前为止,我所做的是:

代码语言:javascript
运行
复制
public void openFile()
    {
        ArrayList <String> ShippingTokens = new ArrayList<String>();
        try{
            FileInputStream fstream = new FileInputStream("D://Shipping.txt");
            // Use DataInputStream to read binary NOT text.
                    BufferedReader br = new BufferedReader (new InputStreamReader (fstream));
            String strline;
            while ((strline = br.readLine()) != null){ 
                strline = strline.trim();

            if ((strline.length()!=0)) {
                String[] Shippings = strline.split("//s+");
                ShippingTokens.add(Shippings[TOKEN_COLUMN]);
            }

        }

        for (String s : ShippingTokens) {
            System.out.println(s);
        }

        in.close();
        } catch (Exception e){
            System.err.println("Error");
        }

    }
EN

回答 3

Stack Overflow用户

发布于 2013-10-24 17:10:51

首先,Java SE 7确实简化了文件的处理,因此我建议您使用它。

代码语言:javascript
运行
复制
try(BufferedReader reader = Files.newBufferedReader(Paths.get("D://Shipping.txt"), StandardCharsets.UTF_8)) { 
    List<String> lines = Files.readAllLines(reader, StandardCharsets.UTF_8);
    for(String line : lines) {
         String[] shipping = line.split("//s+");
         //now do whatever you want with the values
    }
}
票数 1
EN

Stack Overflow用户

发布于 2013-10-24 17:13:03

请确保在您的类中定义了TOKEN_COLUMN。

代码语言:javascript
运行
复制
 ShippingTokens.add(Shippings[TOKEN_COLUMN]);

如果你的是TOKEN_COLUMN value is 0,那么你的输出将如下所示。

代码语言:javascript
运行
复制
GoodTitle   
Gold
Wheat
Wood
Spices
Tobacco
Coal
Coffee
Tea
票数 0
EN

Stack Overflow用户

发布于 2013-10-24 17:16:37

一种可能的解决方案是首先读取字符串的第一个单词,然后将其存储在数组中。然后,您可能希望存储行的其余部分,这可以通过多种方式来完成。一种可能的解决方案是读取整个行,将第一个单词存储为GoodTitle,删除第一个单词并将字符串的其余部分存储为描述,我不太确定BufferedReaders在Java语言中是如何工作的。

您可能需要考虑使用扫描仪。http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html

它附带了next()和nextLine()等方法,这些方法可能会简化您的解决方案。

是否确实要将其存储在数组中?使用GoodTitle作为关键字将信息存储在HashMap中可能更有意义。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19561360

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档