首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >读取文件一次,并多次使用数据

读取文件一次,并多次使用数据
EN

Stack Overflow用户
提问于 2011-01-27 15:04:13
回答 4查看 2.5K关注 0票数 1

我写了一个java类,它读取一个文件并将每一行存储在一个arraylist中。我想要访问这个数组列表很多次。每次调用该类来访问arraylist时,它都会再次读取该文件。我希望读取文件一次,然后多次访问数组列表。我该怎么做呢?

EN

回答 4

Stack Overflow用户

发布于 2011-01-27 15:08:01

将其存储在类的字段中。即:

代码语言:javascript
复制
public class Foo {
   private List<String> list;

   public List<String> readData() {
       if (list != null) { 
           return list;
       }
       // do the reading.
   }
}

请注意,如果在多线程环境中使用它,则必须采取额外的措施。例如,将synchronized放在方法上。

正如Peter所说,如果您可以读取多个文件,那么您就可以使用Map<String, List<String>>

另一个注意事项是你应该只使用这个类的一个实例。如果你创建了多个实例,你不会得到想要的效果。

票数 4
EN

Stack Overflow用户

发布于 2011-01-27 15:13:42

听起来你应该在构造类的时候阅读文件,而不是在访问它的时候。请注意,这并不一定意味着在构造函数中-您很可能希望有一个静态工厂方法,将文件读取到ArrayList中,然后将该列表传递给真正的构造函数。这将使类更容易测试(并在其他测试中使用)。

然后,您只需要创建一次类,并使您的其余代码使用相同的实例。请注意,这不需要使用单例模式,单例模式本身会使测试变得更加困难。这只意味着将实例传播到所有需要它的代码。

票数 1
EN

Stack Overflow用户

发布于 2011-01-27 15:09:37

也许你需要做一个单件的?然后,您只需读取该文件一次--当您创建一个真正新的类实例时。

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

https://stackoverflow.com/questions/4813617

复制
相关文章

相似问题

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