آموزش خواندن فایل txt در جاوا

امتیاز 2.00 ( 1 رای )

سلام دوستان امیداوارم سلامت باشید در این سری از آموزش برنامه نویسی جاوا به آموزش خواندن فایل txt در جاوا می پردازیم برای اینکه یک فایل txt را بخوانیم شاید روش های مختلفی وجود داشته باشد ولی استفاده از روش درست و بهینه برای خواندن فایل txt استفاده کرد در ادامه با ما همراه باشید.
 
ما چندین راه را برای خواندن فایل در ادامه معرفی می کنیم.
یک کلاس به نام TestReadFile.java ایجاد می کنیم و کدهای زیر را در آن قرا میدهیم این کد در جاوا 8 کار خواهد کرد.

package ir.programchi;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.stream.Stream;
public class TestReadFile {
	public static void main(String args[]) {
		String fileName = "c://lines.txt";
		//read file into stream, try-with-resources
		try (Stream<String> stream = Files.lines(Paths.get(fileName))) {
			stream.forEach(System.out::println);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

قبل از اینکه کد بالا را اجرا کنید یک فایل به نام lines.txt در پوشه C ایجاد کنید و یکسری داده sample همانند زیر در آن قرار دهید.

orjinakteb.com
line1
line2
line3
line4
line5
programchi.com

خواندن فایل txt با استفاده از Stream و Extera در جاوا

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class TestReadFile2 {
	public static void main(String args[]) {
		String fileName = "c://lines.txt";
		List<String> list = new ArrayList<>();
		try (Stream<String> stream = Files.lines(Paths.get(fileName))) {
			list = stream
					.filter(line -> !line.startsWith("line3"))
					.map(String::toUpperCase)
					.collect(Collectors.toList());
		} catch (IOException e) {
			e.printStackTrace();
		}
		list.forEach(System.out::println);
	}
}

کد بالا ابتدا عمل فیلتر را انجام میدهد سپس همی محتوا را به UpperCase تبدیل می کند و در نهایت آن را به List تبدیل می کند. (جاوا 8 واقعا عالیه !)
امکان خواندن فایل نیز در ورژن های قدیمی جاوا با استفاده از BufferReader می تواند انجام گیرد.

package ir.programchi;
import java.io.BufferedReader;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
public class TestReadFile3{
	public static void main(String args[]) {
		String fileName = "c://lines.txt";
		List<String> list = new ArrayList<>();
		try (BufferedReader br = Files.newBufferedReader(Paths.get(fileName))) {
			list = br.lines().collect(Collectors.toList());
		} catch (IOException e) {
			e.printStackTrace();
		}
		list.forEach(System.out::println);
	}
}

خواندن فایل txt با استفاده Scanner

package ir.programchi;
import java.io.File;
import java.io.IOException;
import java.util.Scanner;
public class TestReadFile5 {
	public static void main(String args[]) {
		String fileName = "c://lines.txt";
		try (Scanner scanner = new Scanner(new File(fileName))) {
			while (scanner.hasNext()){
				System.out.println(scanner.nextLine());
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

 
 
موفق باشید.
 
 

مطالعه بیشتر