来自RAF的Java格式输出字符串

来自RAF的Java格式输出字符串,java,string,format,randomaccessfile,Java,String,Format,Randomaccessfile,我试图在一个文本区域GUI中从RAF输出数据。我得到了输出(标题的长度不同,但最多35个字符),但所有将字符串放入列的尝试都失败了 这就是我目前拥有的: while (count < noItems) { String title = ""; for (int i = 0; i < 35; i++) { title += raf.readChar(); } int noCopies = raf.readInt(); doub

我试图在一个文本区域GUI中从RAF输出数据。我得到了输出(标题的长度不同,但最多35个字符),但所有将字符串放入列的尝试都失败了

这就是我目前拥有的:

while (count < noItems) {

    String title = "";
    for (int i = 0; i < 35; i++) {
        title += raf.readChar();
    }

    int noCopies = raf.readInt();
    double price = raf.readDouble();


   result+=String.format("%-40s", title);
   result+=(noCopies+"\t "+ twoDigit.format(price)+"\n"); 
    count++;
}
mainTextArea.setText(result);
while(计数
可能是您在一个字符串中添加所有列时超过了字符串的最大长度(2^31-1)(因此所有将字符串放入列的尝试都失败)。每次在
while
循环中尝试添加JTextArea(
mainTextArea
)中的每一列。试试这个代码

while (count < noItems) {

String title = "";
for (int i = 0; i < 35; i++) {
    title += raf.readChar();
}

int noCopies = raf.readInt();
double price = raf.readDouble();


result = String.format("%-40s", title) + (noCopies+"\t "+ twoDigit.format(price)+"\n"); 
mainTextArea.setText(result);
count++;

}
while(计数
删除多余部分,为清晰起见重新编写,固定格式。