Чтение текстового файла в Java - PullRequest
4 голосов
/ 12 января 2010

Как бы я прочитал .txt файл в Java и поместил каждую строку в массив, если каждая строка содержит целые числа, строки и двойные числа? И каждая строка имеет разное количество слов / цифр.

Я полный нуб в Java, так что извините, если этот вопрос немного глуп.

Спасибо

Ответы [ 7 ]

11 голосов
/ 12 января 2010

Попробуйте класс Scanner, о котором никто не знает, но может сделать почти все с текстом.

Чтобы получить ридер для файла, используйте

File file = new File ("...path...");
String encoding = "...."; // Encoding of your file
Reader reader = new BufferedReader (new InputStreamReader (
    new FileInputStream (file), encoding));

... use reader ...

reader.close ();

Вы должны действительно указать кодировку, иначе вы получите странные результаты, когда столкнетесь с umlauts, Unicode и т. П.

6 голосов
/ 12 января 2010

Самый простой вариант - просто использовать Apache Commons IO JAR и импортировать класс org.apache.commons.io.FileUtils. Есть много возможностей при использовании этого класса, но наиболее очевидным будет следующее:

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

Это так просто.

«Не изобретай велосипед».

2 голосов
/ 12 января 2010

Ваш вопрос не очень понятен, поэтому я отвечу только за "прочитанную" часть:

List<String> lines = new ArrayList<String>();
BufferedReader br = new BufferedReader(new FileReader("fileName"));
String line = br.readLine();
while (line != null)
{
    lines.add(line);
    line = br.readLine();
}
1 голос
/ 13 марта 2013

Обычно используется:

    String line = null;
    File file = new File( "readme.txt" );

    FileReader fr = null;
    try
    {
        fr = new FileReader( file );
    } 
    catch (FileNotFoundException e) 
    {  
        System.out.println( "File doesn't exists" );
        e.printStackTrace();
    }
    BufferedReader br = new BufferedReader( fr );

    try
    {
        while( (line = br.readLine()) != null )
    {
        System.out.println( line );
    }
0 голосов
/ 24 апреля 2019

Лучший способ прочитать файл в Java - открыть, прочитать построчно, обработать его и закрыть strea

// Open the file
FileInputStream fstream = new FileInputStream("textfile.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(fstream));

String strLine;

//Read File Line By Line
while ((strLine = br.readLine()) != null)   {
  // Print the content on the console - do what you want to do
  System.out.println (strLine);
}

//Close the input stream
fstream.close();

Чтобы узнать больше о том, как читать файл на Java, прочитайте статью .

0 голосов
/ 25 января 2019

Это хороший способ работы с потоками и коллекторами.

List<String> myList;
try(BufferedReader reader = new BufferedReader(new FileReader("yourpath"))){
    myList = reader.lines() // This will return a Stream<String>
                 .collect(Collectors.toList());
}catch(Exception e){
    e.printStackTrace();
}

При работе с потоками у вас также есть несколько методов для фильтрации, манипулирования или уменьшения вашего ввода.

0 голосов
/ 07 января 2016

@ user248921 Прежде всего, вы можете хранить все что угодно в строковом массиве, поэтому вы можете создать строковый массив и сохранить строку в массиве и использовать значение в коде в любое время. Вы можете использовать приведенный ниже код для хранения разнородных (содержащих строки, int, логические и т. д.) строк в массиве.

public class user {
 public static void main(String x[]) throws IOException{
  BufferedReader b=new BufferedReader(new FileReader("<path to file>"));
  String[] user=new String[500];
  String line="";
  while ((line = b.readLine()) != null) {
   user[i]=line; 
   System.out.println(user[1]);
   i++;  
   }

 }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...