Читати з файлу Java
1. BufferedReader: Цей метод читає текст з потоку вводу, використовуючи буферизацію.
import java.io.*;
public static void main(String[] args) throws Exception
{
// \t - службовий символ
File file = new File("1.txt");
BufferedReader br = new BufferedReader(new FileReader(file));
String st;
while ((st = br.readLine()) != null)
System.out.println(st);
}
2. FileReader: Зручний для читання послідовності символів
import java.io.*;
public static void main(String[] args) throws Exception
{
FileReader fr = new FileReader("1.txt");
int i;
while ((i=fr.read()) != -1)
System.out.print((char) i);
}
3. Scanner: Може аналізувати прості типи данних використовуючи регулярні вирази
import java.io.File;
import java.util.Scanner;
public static void main(String[] args) throws Exception
{
File file = new File("1.txt");
Scanner sc = new Scanner(file);
while (sc.hasNextLine())
System.out.println(sc.nextLine());
}
4. Scanner, але без циклу:
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public static void main(String[] args) throws FileNotFoundException
{
File file = new File("1.txt");
Scanner sc = new Scanner(file);
sc.useDelimiter("\\Z"); // \\Z - розділювач
System.out.println(sc.next());
}
5. Прочитати файл в список: Файл буде гарантовано закритий, коли будуть прочитані усі байти, чи відбудеться помилка.
import java.util.*;
import java.nio.charset.StandardCharsets;
import java.nio.file.*;
import java.io.*;
public static List<String> readFileInList(String fileName)
{
List<String> lines = Collections.emptyList();
try
{
lines = Files.readAllLines(Paths.get(fileName), StandardCharsets.UTF_8);
}
catch (IOException e)
{
// і ще щось зробити тут
e.printStackTrace();
}
return lines;
}
public static void main(String[] args)
{
List l = readFileInList("1.txt");
Iterator<String> itr = l.iterator();
while (itr.hasNext())
System.out.println(itr.next());
}
6. Прочитати файл в змінну String:
import java.nio.file.*;
public static String readFileAsString(String fileName) throws Exception
{
String data = "";
data = new String(Files.readAllBytes(Paths.get(fileName)));
return data;
}
public static void main(String[] args) throws Exception
{
String data = readFileAsString("1.txt");
System.out.println(data);
}