java – BufferedReader:将多行读入单个字符串

前端之家收集整理的这篇文章主要介绍了java – BufferedReader:将多行读入单个字符串前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用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).

猜你在找的Java相关文章