Чтение и отображение данных из TXT файла

Как вы читаете и показываете данные из .txt файлов?

Ответ 1

BufferedReader in = new BufferedReader(new FileReader("<Filename>"));

Затем вы можете использовать in.readLine(); для чтения одной строки за раз. Чтобы прочитать до конца, напишите цикл while как таковой:

String line;
while((line = in.readLine()) != null)
{
    System.out.println(line);
}
in.close();

Ответ 2

Если ваш файл строго соответствует тексту, я предпочитаю использовать класс java.util.Scanner.

Вы можете создать Scanner из файла:

Scanner fileIn = new Scanner(new File(thePathToYourFile));

Затем вы можете прочитать текст из файла с помощью методов:

fileIn.nextLine(); // Reads one line from the file
fileIn.next(); // Reads one word from the file

И вы можете проверить, осталось ли еще текст:

fileIn.hasNext(); // Returns true if there is another word in the file
fileIn.hasNextLine(); // Returns true if there is another line to read from the file

Как только вы прочтете текст и сохраните его в String, вы можете напечатать строку в командной строке с помощью

System.out.print(aString);
System.out.println(aString);

В опубликованной ссылке содержится полная спецификация для класса Scanner. Будет полезно помочь вам в том, что еще вы захотите сделать.

Ответ 3

В общем:

  • Создайте FileInputStream для файла.
  • Создайте InputStreamReader, обернув поток ввода, указав правильный кодирование
  • При необходимости создайте BufferedReader вокруг InputStreamReader, что упрощает чтение строки за раз.
  • Прочитайте до тех пор, пока не появится больше данных (например, readLine возвращает null)
  • Показывать данные по мере поступления или буферизировать их позже.

Если вам нужна дополнительная помощь, пожалуйста, будьте более конкретными в своем вопросе.

Ответ 4

Мне нравится этот кусок кода, используйте его для загрузки файла в одну строку:

File file = new File("/my/location");
String contents = new Scanner(file).useDelimiter("\\Z").next();

Ответ 5

Если вы хотите взять несколько ярлыков, вы можете использовать Apache Commons IO:

import org.apache.commons.io.FileUtils;

String data = FileUtils.readFileToString(new File("..."), "UTF-8");
System.out.println(data);

: -)

Ответ 6

Чтобы прочитать строки из TXT файла с помощью encoding UTF-8:

File krokiPath = new File("Records\Record");
BufferedReader in = new BufferedReader(
        new InputStreamReader(new FileInputStream(krokiPath), "UTF8"));

while((r = in.readLine()) != null) {
    System.out.println(r);
}
in.close();

Ответ 7

public class PassdataintoFile {

    public static void main(String[] args) throws IOException  {
        try {
            PrintWriter pw = new PrintWriter("C:/new/hello.txt", "UTF-8");
            PrintWriter pw1 = new PrintWriter("C:/new/hello.txt");
             pw1.println("Hi chinni");
             pw1.print("your succesfully entered text into file");
             pw1.close();
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (UnsupportedEncodingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        BufferedReader br = new BufferedReader(new FileReader("C:/new/hello.txt"));
           String line;
           while((line = br.readLine())!= null)
           {
               System.out.println(line);
           }
           br.close();
    }

}

Ответ 8

В Java 8 вы можете прочитать целый файл, просто используя:

public String read(String file) throws IOException {
  return new String(Files.readAllBytes(Paths.get(file)));
}

или если его ресурс:

public String read(String file) throws IOException {
  URL url = Resources.getResource(file);
  return Resources.toString(url, Charsets.UTF_8);
}

Ответ 9

Ниже приведен код, который вы можете попробовать прочитать файл и отобразить в java, используя класс сканера. Код будет считывать имя файла у пользователя и печатать данные (файлы Notepad VIM).

import java.io.*;
import java.util.Scanner;
import java.io.*;

public class TestRead
{
public static void main(String[] input)
{
    String fname;
    Scanner scan = new Scanner(System.in);

    /* enter filename with extension to open and read its content */

    System.out.print("Enter File Name to Open (with extension like file.txt) : ");
    fname = scan.nextLine();

    /* this will reference only one line at a time */

    String line = null;
    try
    {
        /* FileReader reads text files in the default encoding */
        FileReader fileReader = new FileReader(fname);

        /* always wrap the FileReader in BufferedReader */
        BufferedReader bufferedReader = new BufferedReader(fileReader);

        while((line = bufferedReader.readLine()) != null)
        {
            System.out.println(line);
        }

        /* always close the file after use */
        bufferedReader.close();
    }
    catch(IOException ex)
    {
        System.out.println("Error reading file named '" + fname + "'");
    }
}

}

Ответ 10

Вы, скорее всего, захотите использовать класс FileInputStream:

int character;
StringBuffer buffer = new StringBuffer("");
FileInputStream inputStream = new FileInputStream(new File("/home/jessy/file.txt"));

while( (character = inputStream.read()) != -1)
        buffer.append((char) character);

inputStream.close();
System.out.println(buffer);

Вы также захотите уловить некоторые из исключений, созданных методом read() и конструктором FileInputStream, но это детали реализации, специфичные для вашего проекта.