+4

Đọc toàn nội dung và đọc từng dòng trong file với java 8

Một sự cải tiến vượt bậc trong hành vi đọc ghi file của java 8 so với các thời java tiền nhiệm trước (Rất dài dòng và rườm rà). Dùng Stream để lưu luồng và xử lý. (Lambda)

Mình đã giải thích rất rõ ràng trong code rồi, các bạn xem code nhé 😉

  1. Đọc toàn bộ nội dung của file.
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Paths;

/**
 * @author khiemnd5
 *Email:khiemnd5@gmail.com
 *
 * Apr 17, 2016
 */

/*
Nội dung file text.txt:

Welcome my blog Khiem Nguyen Dang
Hello
Hava a nice day
Xin chào mình là Nguyễn Đăng Khiêm

=> Java 8 sẽ đọc toàn nội dung của file và in nội dung đó ra.
 */
public class ReadFromFileJava8 {

	public static void readFile() throws IOException{
		String fileName = "/users/khiemnd5/text.txt";//bạn hãy thay đổi đường dẫn tới file của bạn
		String content = new String(Files.readAllBytes(Paths.get(fileName)),
		        StandardCharsets.UTF_8);//đưa về chuẩn utf-8
		System.out.println(content);
	}
	public static void main(String[] args) throws IOException {
		readFile();
	}
}

Kết quả:

Screen Shot 2016-04-17 at 1.55.15 PM.png

  1. Đọc từng dòng trong file.
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.stream.Stream;

/**
 * @author khiemnd5
 *Email:khiemnd5@gmail.com
 *
 * Apr 17, 2016
 */

/*
Nội dung file text.txt:

Welcome my blog Khiem Nguyen Dang
Hello
Hava a nice day
Xin chào mình là Nguyễn Đăng Khiêm

=> Java 8 sẽ đọc từng dòng trong file và in ra nội dung từng file thông qua stream là một điểm mới trong java 8(Lambada).
 */
public class ReadFromFileJava8 {

	public static void readFile(){
		String fileName = "/users/khiemnd5/text.txt";//bạn hãy thay đổi đường dẫn tới file của bạn
//		int []i ={0};//i là biến đếm xem chúng ta đã in tới dòng nào
		try(Stream<String> stream = Files.lines(Paths.get(fileName),StandardCharsets.UTF_8)){//đưa về dạng chuẩn utf8
			stream.forEach(line ->{
				//line là từng dòng trong file, tại đây bạn có thể tương tác với nội dung của file. Ở đây, mình chỉ in ra nội dung của từng dòng

//				System.out.println(line +" is number line "+ i[0]++);//in ra cả nội dung file và dòng thứ mấy ta vừa in, bắt đầu từ 0
				System.out.println(line);
			});
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	public static void main(String[] args) {
		readFile();
	}
}

Kết quả:

Screen Shot 2016-04-17 at 2.03.15 PM.png

Cảm ơn các bạn đã đọc 😄


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí