我如何在java中读取记事本文件?

时间:2010-01-13 13:51:23

标签: java file notepad

我试图创建一个餐厅系统,从菜单中创建食品等。

很快就会学习jdbc而且我确信这会有所帮助但是现在我觉得最简单的方法就是在记事本中创建我的菜单。

最好的方法是排队并从菜单中读取记事本文件。

请尽量说清楚,我不完全确定所有术语。

这个看起来很有希望,但我不知道该怎么做。

/////////////////////////////////////////////// //////////////////////

我仍然坚持这一点。

我决定单独制作阅读文件的方法。

我已经尝试了我能想到的每一个例子。有人可以告诉我一个如何定义文件类路径的例子。

如果我输入menu.txt它就不起作用了。

6 个答案:

答案 0 :(得分:7)

答案 1 :(得分:2)

答案 2 :(得分:2)

最简单的选择是简单地使用Apache Commons IO JAR并导入org.apache.commons.io.FileUtils类。使用这个类有很多种可能性,但最明显的可能如下;

List<String> lines = FileUtils.readLines(new File("untitled.txt"));

就这么简单。

  

“不要重新发明轮子。”

我可以问一下您将从此文件中读取哪种内容/数据,因为可能还有其他(甚至更简单)的可能性吗?

<强>属性

  

富= “酒吧”

字符串标记

  

FOO,酒吧,FU,巴兹

如果您需要我提及的任何流程的详细信息,请告诉我。

答案 3 :(得分:1)

“记事本”文件只是文本文件,因此您只需使用Reader实例读取它。由于Notepad支持Windows Unicode,因此您可能需要指定“UTF-16LE”的字符集。

答案 4 :(得分:1)

基本思想是创建文件阅读器对象

FileReader fr = new FileReader('file.txt');

然后遍历文件逐行解析每一行并将内容保存到一些内部数据存储(Array,HashMap)。

您所拥有的示例中的while循环就是这样做的。 FileReader类将处理为您结束的行,并且当没有更多行要读取时将返回null。你需要在while循环中做的是解析每一行并将不同的数据位(课程名称,价格等)彼此分开。

编辑:要解析这些行,您可以执行以下操作。 while循环内部的内容取决于您如何格式化菜单文件。以下工作假设菜单文件包含每行上用逗号分隔的课程的价格和名称(按此顺序)。

12.95$,Penne ala Arabiata
8.15$,Fish Soup

请注意,如果您执行此操作,则无法在价格中使用逗号。您当然可以使用分号作为数据字段之间的分隔符而不是逗号。数据字段的数量当然也取决于您。

String line = "";
// read lines from file
while ((line = fr.readLine()) != null) {
    // parse each line
    tokens = line.split(",");
    String price = tokens[0];
    String courseName = tokens[1];
    // extract all other information
}

在最终的代码中,您需要将数据字段保存到某个结构中,而不是仅从文件中提取它们。另一件需要注意的是,由于美元符号,价格是一个字符串而不是一个数字。如果您希望使用价格进行任何计算,您当然需要将其转换为parseFloat()parseDouble()的数字。

当然如果你使用csv(逗号分隔值)格式,最好去csv库为你做解析,而不是自己编写解析器。

http://opencsv.sourceforge.net/

答案 5 :(得分:1)

String filename = "myfile.txt";
BufferedReader reader = new BufferedReader(new FileReader(filename));

try{
  String line;
  //as long as there are lines in the file, print them
  while((line = reader.readLine()) != null){ 
    System.out.println(line);
  }
} catch (IOException e) {
  e.printStackTrace();
}