在RandomAccessFile中结束行StringBuilder

用户名

我正在尝试使用类RandomAccessFile,但字符串有问题。

这是第一部分。写入文件:

public static void main(String[] args) throws IOException {
    File file = new File("/home/pep/java/randomFile.dat");
    RandomAccessFile fitxerAleatori = new RandomAccessFile(file, "rw");

    String[] surnames = { "SMITH", 
            "LOMU" };
    int[] dep = { 10,
            20 };
    Double[] salary = { 1200.50, 
            1200.50 };

    StringBuilder buffer = null;
    int n = surnames.length;

    for (int i = 0; i<n; i++){
        randomFile.writeInt(i+1); //ID
        buffer = new StringBuilder(surnames[i]);
        buffer.setLength(10); //10 characters
        randomFile.writeChars(buffer.toString());
        randomFile.writeInt(dep[i]);
        randomFile.writeDouble(salary[i]);
    }
    randomFile.close();
}

在第二部分中,我尝试读取此文件:

    File file = new File("/home/pep/java/randomFile.dat");
    RandomAccessFile randomFile = new RandomAccessFile(file, "r");

    char[] surname = new char[10];
    char aux;
    int id, dep, pos;
    Double salary;

    pos = 0;

    for (;;) {
        randomFile.seek(pos);
        id = randomFile.readInt();
        for (int i = 0; i < surname.length; i++) {
            aux = randomFile.readChar();
            surname[i] = aux;
        }
        String surnameStr = new String(surname); //HERE IS THE PROBLEM!!
        dep = randomFile.readInt();
        salary = randomFile.readDouble();
        System.out.println("ID: " + id + ", Surname: " + surnameStr + ", Departament: " + dep + ", Salary: " + salary);

        pos = pos + 36; // 4 + 20 + 4 + 8

        if (randomFile.getFilePointer() == randomFile.length())
            break;
    }
    randomFile.close();
}

好吧,当我希望读到:

ID:1,姓氏:SMITH,部门:10,工资:1200.50

我收到了:

ID:1,姓氏:SMITH

就像在姓氏中是行尾一样,因为如果我不显示姓氏,则其他信息是正确的。

谢谢!

用户名

问题出在char数组中。我更改了de loop来读取字符:

for (int i = 0; i < surname.length; i++) {
            aux = randomFile.readChar();
            surname[i] = aux != 0 ? aux : ' ';
        }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

weka中的行过早结束

来自分类Dev

使用StringBuilder在文本框中随机排列行顺序

来自分类Dev

RandomAccessFile 修改特定行的字符串

来自分类Dev

对于同一行中循环的不同结束条件?

来自分类Dev

对于同一行中循环的不同结束条件?

来自分类Dev

在SwitchCase中以空白行(Enter键)结束While循环

来自分类Dev

将枚举保存在RandomAccessFile中

来自分类Dev

将枚举保存在RandomAccessFile中

来自分类Dev

ActiveMQ中的Stringbuilder

来自分类Dev

当我添加新行时,标题行中的数据在新行中结束

来自分类Dev

StringBuilder自动制作新行

来自分类Dev

下一个文件中开始和结束模式甚至结束模式之间的Grep行

来自分类Dev

减少Word 2011中的表格行高度(行格式结束时可能出现特定问题)

来自分类Dev

如何在SQL中的表中获取空记录的开始和结束行

来自分类Dev

如何从R中具有重复的开始和结束日期的数据框中删除行

来自分类Dev

在Python中结束评论

来自分类Dev

终端中的转义(结束)

来自分类Dev

在R中结束“ +”提示

来自分类Dev

设计中的会议结束

来自分类Dev

StringBuilder中的少量附加性能

来自分类Dev

StringBuilder.Remove() 中的 OutOfRangeException

来自分类Dev

在Java中对/ dev / raw / raw1的RandomAccessFile访问

来自分类Dev

Javascript比较行结束值

来自分类Dev

在.pdf中找到结束行

来自分类Dev

如何在Python的起始行和结束行中获取类的范围?

来自分类Dev

筛选pandas数据框中的行,其中数据从当前季度的开始到当前月的结束

来自分类Dev

如何调试PHP错误“第48行中的文件意外结束”?

来自分类Dev

结束行字符在Java正则表达式中不起作用

来自分类Dev

如何根据reactjs中的日期范围选择(开始日期-结束日期)过滤表格行?

Related 相关文章

  1. 1

    weka中的行过早结束

  2. 2

    使用StringBuilder在文本框中随机排列行顺序

  3. 3

    RandomAccessFile 修改特定行的字符串

  4. 4

    对于同一行中循环的不同结束条件?

  5. 5

    对于同一行中循环的不同结束条件?

  6. 6

    在SwitchCase中以空白行(Enter键)结束While循环

  7. 7

    将枚举保存在RandomAccessFile中

  8. 8

    将枚举保存在RandomAccessFile中

  9. 9

    ActiveMQ中的Stringbuilder

  10. 10

    当我添加新行时,标题行中的数据在新行中结束

  11. 11

    StringBuilder自动制作新行

  12. 12

    下一个文件中开始和结束模式甚至结束模式之间的Grep行

  13. 13

    减少Word 2011中的表格行高度(行格式结束时可能出现特定问题)

  14. 14

    如何在SQL中的表中获取空记录的开始和结束行

  15. 15

    如何从R中具有重复的开始和结束日期的数据框中删除行

  16. 16

    在Python中结束评论

  17. 17

    终端中的转义(结束)

  18. 18

    在R中结束“ +”提示

  19. 19

    设计中的会议结束

  20. 20

    StringBuilder中的少量附加性能

  21. 21

    StringBuilder.Remove() 中的 OutOfRangeException

  22. 22

    在Java中对/ dev / raw / raw1的RandomAccessFile访问

  23. 23

    Javascript比较行结束值

  24. 24

    在.pdf中找到结束行

  25. 25

    如何在Python的起始行和结束行中获取类的范围?

  26. 26

    筛选pandas数据框中的行,其中数据从当前季度的开始到当前月的结束

  27. 27

    如何调试PHP错误“第48行中的文件意外结束”?

  28. 28

    结束行字符在Java正则表达式中不起作用

  29. 29

    如何根据reactjs中的日期范围选择(开始日期-结束日期)过滤表格行?

热门标签

归档