hasNextLine()

txt파일(메모장)을 작성후, 메모장내역을 불러와 콘솔에 출력하기

package ex3.array.test2;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Scanner;

public class Program {

	public static void main(String[] args) throws IOException {

	//1.문자열 10개 짜리 names 배열을 생성한다.
		String[] names = new String[10];
		
	//2.파일에서 name들을 읽어와서 names 배열애 대입한다.
		FileInputStream fis = new FileInputStream("res/names.txt");
		Scanner fscan = new Scanner(fis); //문자불러오기
		
		int i =0;
		while(fscan.hasNextLine()) { //참인동안 반복
			String name = fscan.nextLine(); //끝까지 읽었다는 것을 알려줌
			names[i++] = name; // 다음을 증가
			System.out.printf("%s, ",names[i-1]);
			
			if(fscan.hasNextLine()==true) // 거짓이면 중단
				System.out.printf(","); //마지막줄
		}
				
	//3.names 배열의 이름을 다음처럼 콘솔에 출력한다.
	//홍길동,김길동,강호동,유재석
				
		fscan.close();
		fis.close();

		System.out.println("복사완료");	
	}
}

nextLine()줄을 읽어오지만, 끝을 읽었다는걸 알려주거나, 값을가져오는내용이없다. 

fscan.점을찍으면 여러메소드들이 조회된다

hasnextline() : 불리언, 트루, 거짓 값을 반환한다, 다음라인을 가져올수있으면 트루값을가져오도록 한다.

 

if(fscan.hasNextLine() : 불러올 문자가 더 있다면 참
String name = fscan.nextLine(); : 불러온 문자를 변수name에 넣는다.

names[i++] = name; 배열에 담는다.

names[i++] : 다음을 증가, 

 

다음라인이있는지 찾고, 있다면 배열에 담는것을 반복한다-> while로 반복

 

 

 

 

 

+ Recent posts