0

我正在使用下一种方法从文件中读取内容。这里的问题是我仅限于为指定的字符inputBuffer(在本例中为 1024)。

首先,如果内容长度小于 1024 个字符,我会得到很多空白字符,我需要使用修剪来删除它们。

其次,这更重要,我想读取文件的全部内容,即使它超过 1024 个字符并将其插入到String对象中。我知道我不应该使用该.available方法来确定文件中是否有更多数据,因为它不准确或类似的东西。

关于我应该如何做这件事的任何想法?

public String getContent( String sFileName )
{
    //Stop in case the file does not exists
    if ( !this.exists( sFileName ) )
        return null;

    FileInputStream fIn = null;

    InputStreamReader isr = null;

    String data = null;

    try{

        char[] inputBuffer = new char[1024];

        fIn = _context.openFileInput(sFileName);

        isr = new InputStreamReader(fIn);

        isr.read(inputBuffer);

        data = new String(inputBuffer);

        isr.close();

        fIn.close();

    }catch(IOException e){

        e.printStackTrace(System.err);
        return null;

    }

    return data.trim();
}
4

1 回答 1

2

您可以在分配缓冲区之前读取 #/bytes :

// Poor
char[] inputBuffer = new char[1024];
fIn = _context.openFileInput(sFileName);
isr = new InputStreamReader(fIn);

// Better
long nbytes = new File(sFileName).length();
char[] inputBuffer new char[nbytes];
isr = new InputStreamReader (
  _context.openFileInput (sFileName));

Another solution is to read the input as strings, a line at a time.

于 2012-09-08T06:25:35.843 回答