-1
date                 time               kg

12/10/2013        00.00.01              1   
13/11/2013        00.00.05              2   
17/12/2013        00.00.90              5   
21/12/2013        00.00.23              6   
27/12/2013        00.00.43              9

我将这些数据保存在一个 txt 文件中。我想用java制作一个可以读取这些数据的程序。我已经编写了上面的代码,但我有错误。有人可以帮助我吗?数据之间有空间。

import java.io*;

public class ReadTextfile{
   public static void main (String[] args) {
      File file = new File ("test.txt");
      StringBuilder line = new StringBuilder();
      BufferedReader reader = null;

try {
    reader = new BufferedReader (new FileReader(file));
    String text = null;

    while ((text = reader.readLine()) !=null) {
           line.append(text)
               .append(System.getProperty ("line.separator"));
    }
    }
    catch (IOException e) {
      e.printStackTrace();
    catch (FileNotFoundException e) {
      e.printStackTrace();
   }finally {
    try {
        if (reader !=null){
            reader.close();
    }
    }
    catch (IOException e) {
      e.printStackTrace();
    }
    }
    System.out.println(line.toString());
    }
    }
4

3 回答 3

0

男孩,你只是有一些语法问题

1:更换

import java.io* with import java.io.*

2 : 照顾好你的捕捉体被正确启动和关闭

try
{
// your code
}
catch(Exception e)
{

}

这是工作代码,比较你的程序

import java.io.*;

public class ReadTextfile{
   public static void main (String[] args) 
   {
      File file = new File ("C:/Users/hussain.a/Desktop/test.txt");
      StringBuilder line = new StringBuilder();
      BufferedReader reader = null;

try {
    reader = new BufferedReader (new FileReader(file));
    String text = null;

    while ((text = reader.readLine()) !=null) {
           line.append(text)
               .append(System.getProperty ("line.separator"));
    }
    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    finally 
   {
    try {
        if (reader !=null){
            reader.close();
    }
    }
    catch (IOException e) 
    {
      e.printStackTrace();
    }
    }
    System.out.println(line.toString());
    }
    }
于 2013-04-01T14:06:47.667 回答
0
catch (FileNotFoundException e) 

这是无法访问的代码,因为您在上面捕获了IOException.

请注意

public class FileNotFoundException extends IOException

你的代码不会编译。移除这个锁(你甚至没有关闭它..)

另一件事,如果这不是类型,则应替换java.io*import java.io.*.

于 2013-04-01T14:03:23.213 回答
0

我会采取以下方法:

import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class ReadTextFile
{
    public static void main(String[] args) throws FileNotFoundException
    {
        File file = new File("test.txt");
        Scanner scanner = new Scanner(file);
        List<Result> results = new ArrayList<Result>();

        while(scanner.hasNextLine())
        {
            String currentLine = scanner.nextLine();
            String [] resultArray = currentLine.split(" ");
            results.add(new Result(resultArray[0], resultArray[1], resultArray[2]));
        }
        scanner.close();
    }

    private static class Result
    {
        private String date;
        private String time;
        private String kg;

        public Result(String date, String time, String kg)
        {
            super();
            this.date = date;
            this.time = time;
            this.kg = kg;
        }

        public String getDate()
        {
            return date;
        }

        public String getTime()
        {
            return time;
        }

        public String getKg()
        {
            return kg;
        }
    }
}

现在,您可以从您拥有的结果列表中提取您想要的任何信息。

因此,如果您想打印所有内容,可以执行以下操作:

for(Result singleResult : results)
{
    System.out.println(singleResult.getDate() + " " + singleResult.getTime() + " " + singleResult.getKg());
}

你基本上可以对数据做任何你想做的事情。这种方法还允许您在创建 Result 对象之前将数据转换为不同的类型。

于 2013-09-11T21:22:22.720 回答