我正在使用BufferedReader从txt文件中读取数字进行分析.我现在要做的就是使用.readline读取一行,使用.split将此字符串分割成一个字符串数组
public InputFile () { fileIn = null; //stuff here fileIn = new FileReader((filename + ".txt")); buffIn = new BufferedReader(fileIn); return; //stuff here }
public String ReadBigStringIn() { String line = null; try { line = buffIn.readLine(); } catch(IOException e){}; return line; }
public ProcessMain() { initComponents(); String[] stringArray; String line; try { InputFile stringIn = new InputFile(); line = stringIn.ReadBigStringIn(); stringArray = line.split("[^0-9.+Ee-]+"); // analysis etc. } }
这很好,但是如果txt文件有多行文本呢?有没有办法输出一个长的字符串,或者另一种方法呢?也许使用while(buffIn.readline!= null){}?不知道如何实现这一点.
想法赞赏,
谢谢.
解决方法
你是对的,这里需要一个循环.
常用的成语(仅使用纯Java)就是这样的:
public String ReadBigStringIn(BufferedReader buffIn) throws IOException { StringBuilder everything = new StringBuilder(); String line; while( (line = buffIn.readLine()) != null) { everything.append(line); } return everything.toString(); }
这将删除换行符 – 如果要保留它们,请不要使用readLine()方法,而是直接读入char [](并将其附加到StringBuilder).