자바 텍스트파일 문자열 개행문자 처리 질문드려요
조회수 1861회
현재 텍스트파일에서 문자를 읽어와서 처리하는 것을 짜고 있는데 (bufferedreader 사용)
싱글라인으로 되어있는건 잘 가져오는데 중간에 개행문자가 들어간 경우 개행문자 뒤 내용이 다음 라인으로 넘어가서 혹시 이 것을 보완할 방법이 없을까요? (ex . 가나다라마바사아자) *: 개행문자 ) 제가 원하는 것은 가나다라마바사아자가 한 문자열로 받아오는 것인데 결과는 가나다라 , 마바사아자 따로 나와서 ...
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
아래와 같이 각 라인을 더하면(reduce)하면 됩니다.
jshell 은 jdk 9 이상부터 제공됩니다.
allinux@yhjung:~$ cat out.txt abcde fegfhi jklmn jshell> import java.io.* jshell> import java.util.stream.* jshell> BufferedReader reader = new BufferedReader(new FileReader("out.txt")) reader ==> java.io.BufferedReader@a7e666 jshell> Stream<String> lines = reader.lines() lines ==> java.util.stream.ReferencePipeline$Head@68bbe345 jshell> String result = lines.reduce((a, b) -> a + b).get() result ==> "abcdefegfhijklmn" jshell> reader.close()
- 답변 감사합니다 새로운걸 또 알아가네요 ㅎㅎ 혹시 가끔 텍스트파일보면 한 라인에 abcdefg 가 있는데 이 사이에 검은색 테두리의 동그라미 문자가 들어간 경우가 있잖아요 abcd@efg (@: 검은색테두리 동그라미 문자 이게 개행문자같습니다) 이럴때에 bufferedreader 는 개행문자까지만 있는다고 알고 있어서 제가 원하는 결과는 abcd@efg가 한 라인으로 다 받아오는 건데 @도 살리면서요 ㅎㅎ 이걸 해결할 방법은 없을까요? 알 수 없는 사용자 2018.5.27 05:04
- 개행 즉 라인피드는 0D 0A 문자이고 십진수로 13 10 입니다. 개행문자에 @가 들어갈 수 없습니다. 원본파일을 올려보세요. 정영훈 2018.5.27 06:15
- 답변 감사합니다! 텍스트파일 캡쳐해서 올렸습니다. 저 검은 동그라미를 복사해서 써보면 엔터처럼 사용되는데요 제가 원하는건 thanks@good을 같은 라인으로 받는 것입니다. bufferedReader로 읽으면 저 @ 문자때문에 thanks와 good이 분리되어서 그렇습니다. 라인으로 받아서 라인에 포함된 문자열 특성에 따라 포맷을 수정하는 작업을 하고 있습니다. 읽어주셔서 감사합니다. 알 수 없는 사용자 2018.5.27 08:31
- 해당파일을 allinux36@gmail.com 으로 보내보세요 확인해드릴게요 정영훈 2018.5.28 00:04
댓글 입력