Topic: 请教,如何在一个文本中插入一个新行(空或不空)? |
Print this page |
1.请教,如何在一个文本中插入一个新行(空或不空)? | Copy to clipboard |
Posted by: Kisher Posted on: 2003-10-22 22:24 我尝试RandomAccessFile.writeBytes(String+"\n");以"\n"进行换行,结果输出在一个txt文本里,用记事本打开后换行标志变成了一个”■”(好像文本不认这种换行?) 另外,如果想在已有非空的文本中某个位置插入一行新内容,应该怎么做? 谢谢! |
2.Re:请教,如何在一个文本中插入一个新行(空或不空)? [Re: Kisher] | Copy to clipboard |
Posted by: jameszhang Posted on: 2003-10-23 10:12 加空格行不? |
3.Re:请教,如何在一个文本中插入一个新行(空或不空)? [Re: Kisher] | Copy to clipboard |
Posted by: 笨耗子 Posted on: 2003-10-23 10:34 记事本是有那个烂毛病的,用写字版打开就没问题。但那个符号读入到其他地方(比如读入到FLASH中)还是可以显示为换行的 |
4.Re:请教,如何在一个文本中插入一个新行(空或不空)? [Re: Kisher] | Copy to clipboard |
Posted by: dog72 Posted on: 2003-10-23 11:55 换行符是Java提供的,不要写hardcode |
5.Re:请教,如何在一个文本中插入一个新行(空或不空)? [Re: Kisher] | Copy to clipboard |
Posted by: Kisher Posted on: 2003-10-23 14:21 Java提供的换行符是什么? |
6.Re:请教,如何在一个文本中插入一个新行(空或不空)? [Re: jameszhang] | Copy to clipboard |
Posted by: Kisher Posted on: 2003-10-23 14:22 jameszhang wrote: ?? 不明白~~~~~~~ |
7.Re:请教,如何在一个文本中插入一个新行(空或不空)? [Re: Kisher] | Copy to clipboard |
Posted by: fastray Posted on: 2003-10-23 15:29 文本不认这种换行,试试asc码吧 |
8.Re:请教,如何在一个文本中插入一个新行(空或不空)? [Re: Kisher] | Copy to clipboard |
Posted by: dog72 Posted on: 2003-10-23 15:53 Kisher wrote: 好像是java.io.LineSeparatorFilter,不过记不清是不是1.4的。另外,用RandomAccessFile有很多问题要自己搞定,不如用PrintWriter来的方便。一定要用的话,关于LineSeparator你可以自己定义常量: WINDOW="\r\n" UNIX="\n" |
9.Re:请教,如何在一个文本中插入一个新行(空或不空)? [Re: dog72] | Copy to clipboard |
Posted by: Kisher Posted on: 2003-10-23 18:02 dog72 wrote: 哦,原来平台有差异,难怪我用“\n”不行呢,加上“\n”后就可以换行了。谢谢dog72 :) 可是换行后,如果是在文件头部写入,则原来文件的全部内容都被写入的东西代替了,如果在文件中间写入,后面的内容又都被写入的内容代替了,怎么能够实现“insert”呢,我原以为只要newline就可以了。。。 我在java.io.*里面找来找去发现大部分操作Stream的类不是Input、Out就是Reader、Writer,只有RandomAccessFile能够既In又Out,因为我想在文件中对write进行定位,所以要先“In”再“Out”。 而且,我试了各种write,发现只有writeBytes可以在文件中写入含有中文的String,其他的各种write、print写入后都是问号。 我刚接触Java,对SDK的类库很不熟悉,大家不要见笑:) |
10.Re:请教,如何在一个文本中插入一个新行(空或不空)? [Re: Kisher] | Copy to clipboard |
Posted by: Kisher Posted on: 2003-10-23 18:06 我把我的问题说的再详细点,希望dog72和其他能够明白我的意图的朋友帮忙想想办法,先严重感谢:) 假设result.txt是我想要操作的文本文件,内容如下: ================ Unicode测试代码 2 3 4 5 ================ 现在假设我想在“3”的那一行的后面插入一行文字“insert的文本行” 感谢! |
11.Re:请教,如何在一个文本中插入一个新行(空或不空)? [Re: Kisher] | Copy to clipboard |
Posted by: dog72 Posted on: 2003-10-23 21:13 插入RandomAccess是不行的,它只能覆盖。你的需求可以如下解决: 由FileReader读,用PrintWriter写临时文件,然后改名。基本上就是倒腾一遍文件,在需要的地方写要插入的文本就可以了。 |
12.Re:请教,如何在一个文本中插入一个新行(空或不空)? [Re: Kisher] | Copy to clipboard |
Posted by: Kisher Posted on: 2003-10-24 10:15 可是,PrintWriter能够正确地写入中文吗? |
13.Re:请教,如何在一个文本中插入一个新行(空或不空)? [Re: Kisher] | Copy to clipboard |
Posted by: dog72 Posted on: 2003-10-24 10:49 Kisher wrote: 可以,reader/writer是Java专门处理字符的(Steam是处理byte的)。FileWriter使用缺省的encoding。例子: new PrintWriter(new FileWriter("abc.txt")); |
14.Re:请教,如何在一个文本中插入一个新行(空或不空)? [Re: Kisher] | Copy to clipboard |
Posted by: Kisher Posted on: 2003-10-24 14:34 To: dog72 发现个很奇怪的现象,如果: PrintWriter.println("测试"); // 可以正确输出到一个.txt中 但如果: String str=new String("测试"); PrintWriter.println(str); 就会写入一堆问号? |
15.Re:请教,如何在一个文本中插入一个新行(空或不空)? [Re: dog72] | Copy to clipboard |
Posted by: Kisher Posted on: 2003-10-24 15:29 dog72 wrote: 看来只有用这个办法了,不过FileReader直接从InputStreamReader继承而来,一个方法都没有重写,read还是base on single character。我觉得还是用RandomAccessFile.readLine()好了 谢谢dog72 :) |
Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1 客服电话 18559299278 客服信箱 714923@qq.com 客服QQ 714923 |