【问题标题】:Java - Reading from file issuesJava - 从文件中读取问题
【发布时间】:2015-09-23 23:37:36
【问题描述】:

您好,所以我正在尝试编写从文件中读取数据的代码,但我不知所措。我以前做过一次,但我从中读取的文件看起来像:

铝 90 80 70

贝基 80 85 90

查克 70 90 80

Deb 90 95 90

编 90 85 90

所以我能够编写一个程序来读取名称作为字符串然后是数字并执行一些计算,因为 .txt 文件按原样打印出来。
所以现在我的教授希望我们再做一次,但这次文件是一个 .op 文件,看起来像这样http://ksuweb.kennesaw.edu/~bsetzer/2302sp15/extra/data/747812-63813-2013.op
我不确定我是否在问这个问题,但我如何编写从这些列中的每一列读取的代码。我已经尝试了一些东西,但上面有文字的事实让我感到困惑。只是为了测试,我让它读取所有内容作为字符串并打印它并且它工作。那么你们中的任何人都可以解释一种让程序读取该数据的好方法吗?编辑:赞成反对票。只是想寻求帮助,我得到了所有的反对票。很高兴我来到这里。

【问题讨论】:

  • 读取整个数据并一次处理每一行有什么问题?
  • 不知道该怎么做。
  • 你是用 JavaScript 还是 Java 做的?它们是不相同的。请删除其中一个标签。
  • 另外,请不要依赖外部网站获取数据。在您的问题中包含几行数据,以便如果链接的网站消失,未来的访问者仍然能够理解您的问题。
  • 是的,太大了,无法复制和粘贴

标签: java filereader


【解决方案1】:

我不确定我问的是否正确,但我如何在哪里编写代码 它从这些列中的每一列中读取。

要从每一列读取,将每一行作为一个字符串读取,然后您现在可以将该行拆分为不同的列。从那里您可以随意操作数据。

示例

String val="Al 90 80 70"

val.split("\\s+");

说明

("\\s+"):这是一种使用一个或多个空格分割字符串的正则表达式模式

【讨论】:

  • 对我来说这听起来不错
  • 另外,al 90 80 70 不是问题,而是链接中的内容我不知道如何读入文件。
  • 你要我写一个程序,说明一个例子吗?
  • 我喜欢例子。我将不胜感激。
【解决方案2】:

一种方法:

  try (BufferedReader br = new BufferedReader(new FileReader(file))) {
        String line;
        while ((line = br.readLine()) != null) {
            if(line.contains("STN---"))
                continue;
            String [] cols = line.split(" ");
            // process the columns
        }
    }

您应该添加一个标志以避免检查每一行的子字符串。

【讨论】:

  • 试过了,但我不认为文件是.op
  • 文件扩展名无关紧要。
  • 所以如果文件是 636870-99999-2013.op 那么第一行将是 try '(BufferedReader br = new BufferedReader(new FileReader(636870-99999-2013.op ))) { '还是会有所不同?我从未使用过 FileReader
  • 好的,让它工作。现在我已经处理了列,我该如何读取数据?
猜你喜欢
  • 1970-01-01
  • 2014-07-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-14
  • 1970-01-01
  • 2012-09-02
  • 1970-01-01
相关资源
最近更新 更多