나는 문제가있어서 무엇을 해야할지 모릅니다. 이 메서드는 .txt 문서의 모든 텍스트를 읽어야합니다. 내 문제는 문서에 텍스트가 한 줄 이상 포함되어 있고 프로그램에서 마지막 줄만 읽었을 때입니다. 이 프로그램은 표지판에 대해 걱정할 필요가 없습니다. , : 또는 공백이 있지만 모든 문자를 읽어야합니다. 아무도 나를 도울 수 있습니까?프로그램은 .txt 파일의 마지막 줄만 읽습니다. java
예를 들어 텍스트
내 이름은 입니다 안녕하세요 (반환 올바른 결과)
내
이름
(만 반환 이름입니다) 안녕하세요
private Scanner x;
String readFile(String fileName)
{
try {
x = new Scanner (new File(fileName + (".txt")));
}
catch (Exception e) {
System.out.println("cant open file");
}
while (x.hasNext()) {
read = x.next();
}
return read;
}
'read + = x.next(); '또는'read + = x.next() + "\ n"; '현재 String을 새로운 String으로 연결하기 때문에 여기서 중요한 것은'+ ='입니다. 순수 주체는 StringBuilder 또는 StringBuffer를 사용하는 것을 말합니다. 이는 더 적은 수의 객체를 생성하기 때문에 일반적으로 더 효율적이지만 실제로는 적은 양의 데이터에 대해서는 중요하지 않습니다. –
당신의 프로그램은 모든 것을 읽고 있습니다, while 루프에서는, 그러나 당신은 모든 값을 버리고 마지막은 버립니다; 모든 줄을 문자열에 추가 할 수 있습니다 (StringBuffer 등을 사용하는 것이 바람직 함). – okaram
또한 학습 대신 실제 사용을 위해 readAllBytes 또는 readAllLines – okaram