0
단어가 포함 된 간단한 텍스트 사전 파일을 ';'로 구분했습니다. 제 문제는 모든 단어를 읽고 문자열에 모든 파일을로드하지 않고지도에 저장하는 것입니다. (사전 파일은 매우 클 수 있습니다). 여기에 내가 콘솔에이 단어를 인쇄하려고 내 코드입니다 :char 읽기 및 버퍼 문자열 추가 java
을 :
import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.util.Map; public class Dictionary { private static Dictionary instance; private Map DictionaryMap; private String delimiter; private Dictionary() { } private Dictionary(String dictfile, String delimiter) throws FileNotFoundException, IOException { FileReader fr = new FileReader(dictfile); int position = 0; StringBuffer buffer = new StringBuffer(); while ((position = fr.read()) != -1) { char symbol = (char) fr.read(); if(symbol != ';') { buffer.append(symbol); System.out.println("Char is : "+symbol+" ;"); } else { System.out.println("String is "+buffer+" ;"); buffer.delete(0, buffer.length()-1); } } } public void loadFromFile(File dictfile, String delimiter) { } public String getDelimiter() { return delimiter; } public void setDelimiter(String delimiter) { this.delimiter = delimiter; }
그러나 내가이 포함 샘플 dict.txt 파일에이 코드를 실행하려고 할 때 test1; test2;
구분 기호 사이의 문자 (문자 ';')의 일부를 않습니다하지 표시 :
샤아가 : 전자; Char : t; 문자열은 et입니다. Char : e; Char : t; 문자입니다 :;
Char : \ uffff;
내 질문 왜 제대로 작동하지 않고 형식 캐스팅없이 fileinputstream (내 경우에는)에서 문자를 읽는 방법?
일반 의견. 파일이 크면 대신 BufferedReader를 사용하여 속도를 향상시킬 수 있습니다. 그러면 청크로 된 파일을 내부 버퍼로 읽습니다. 파일을 다룰 때 얻을 수있는 모든 속도가 필요합니다. 파일에서 읽는 또 다른 방법은 StreamTokenizer로 구분 기호 (",")를 지정할 수 있으며 토큰을 제공합니다. – Optimist