※ 引述《whitebase (finn)》之铭言:
: 各位大大好,
: 想请问一下关于写档,
: 是可以在不覆蓋的情况下接续往下写入,
: 但有办法办到整个档案以写入完备毕后,
: 接续的往某一行的后方写吗?
: 范例如下:
: 123
: 456
: 789
: 原档案长这样,
: 有办法改成:
: 123
: 456ABC
: 789
: 这个样子吗?可接在某一行之后,而不是只接在最后一行之后
这个我有点怀疑你有一个典型的观念错误
事实上这档案并不是长个如你所想的这样
而是长得比较像这样123@456@789
他其实是一个plain的, linear的结构
并没有“行”这种概念
"@"这个东西在linux, unix跟windows各用不同的两个位元表示
Windows底下是\r\n Linux底下是\n而BSD系却是\r
不过不管他是什么,事实上“行”的概念是不存在的
所以“接在某行后面的操作”其实真正的意思是
“找出第几个@,然后把一串字符放在他前面”
这显然并不是普通档案API会帮你做的事情
不过既然有逻辑,代表他实际上也做的到
这也是一个相当有名的棘手问题,因为在跨平台的时候每个平台"@"都不太一样
这可以当作java练习题来试试看
噢对,差点忘了,unicode也是可以来参战的 :D
不过java应该交给系统处理就可以了...