일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- React
- spring
- 초기 구축
- 헤더 설정
- docker
- generate entity
- CentOS6
- Java
- 도커
- MySQL
- JavaScript
- memcached
- jpa entity자동
- 초기 세팅
- docker 설치
- NextJS
- custom valid
- Next.js 14
- generate pojos
- header setting
- swagger
- 리눅스
- JPA
- spring boot
- dto valid
- ollama langflow
- java8
- java9
- jvm
- SpringBoot
Archives
- Today
- Total
개발자의 길
[java] 파일 내용 뒤에서 읽기- 원하는 위치에서 본문
일단 파일의 임의의 위치에 접근하려면 RandomAccessFile 라는 클래스를 사용합니다.
그리고 마지막 한 줄을 가져오려면 \n 문자를 뒤로부터 검색해서
발견되는 위치 +1 부터 readLine 해주면 됩니다.
예문)
RandomAccessFile file = new RandomAccessFile("A.txt","r");
long fileSize = file.length();
long pos = fileSize - 1; //뒤로 부터
while(true) {
file.seek(pos); //파일 포인터 이동
if(file.readByte()=='\n') { //해당 위치의 바이트를 읽어 \n 문자와 같은지 검사
break; //같으면 멈춤
}
pos--; //포인터 위치값 감소 (앞으로)
}
file.seek(pos+1); //\n 문자를 찾은 다음으로 파일 포인터 이동
String line = file.readLine();
저렇게 읽어서 출력해 보니 한글이 안보이는 군요.
한글로 출력해야 한다면 readLine 대신
byte[] buff = new byte[20]; //라인을 읽어들일 수 있는 충분한 크기로
file.read(buff); //바이트 배열로 읽어오기
System.out.println(new String(buff).replace("\0", "")); //널문자 제거 및 한글 출력
'4. JAVA' 카테고리의 다른 글
[java8] Collections (0) | 2017.02.13 |
---|---|
[java date] 자바 날짜 시간 계산 예제 (1) | 2017.02.10 |
[java] AES 암호화,복호화 (0) | 2016.04.19 |
[java] csv 파일 콤마 자르기 - 배열 (0) | 2016.04.19 |
[java] 오늘기준 월요일,일요일 구하기, 주 차 구하기, 년월 주 차 받아서 해당 주 월,일요일 구하기 (0) | 2016.04.19 |
이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
Comments