Программа в java, которая считывает данные из текстового файла

-4

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 файле. Я хотел бы сделать программу o в 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());
}
}

спросил(а) 2021-01-19T18:43:41+03:00 2 месяца, 3 недели назад
1
Решение
105

Я бы принял следующий подход:

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.

ответил(а) 2021-01-19T18:43:41+03:00 2 месяца, 3 недели назад
44

мальчик, у вас есть только синтаксическая проблема

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());
}
}

ответил(а) 2021-01-19T18:43:41+03:00 2 месяца, 3 недели назад
44

catch (FileNotFoundException e) 

Это недостижимый код, так как над ним вы попали IOException.

Обратите внимание, что:

public class FileNotFoundException extends IOException

Ваш код не будет компилироваться. Удалите этот улов (вы его даже не закрыли..)

Другое дело, если это не тип, вы должны заменить java.io* на import java.io.*.

ответил(а) 2021-01-19T18:43:41+03:00 2 месяца, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема