java IO问题 我想实现的功能是这样:就是写一些数据追加到一个txt文件里面。。不追加到末尾,,而是从开始添加。。其他的内容往后移动。。怎么解决啊??? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 java.io.RandomAccessFile ra = new java.io.RandomAccessFile("11.txt","rwd");//设置到文件开头ra.seek(0);//在文件开头添加“11”ra.writeBytes("11"); 其实不行。这段代码会把原来文件(11.txt)中的前两个字覆盖掉! 思路:1、把txt原来内容取出来,保存在byte数组里。2、然后输出流把后来内容写入。3、然后追加刚才取出来的内容。 1.新建一个txt文件(b.txt);2.写你打算追加的一些数据;3.读原先的txt文件内容,写到b.txt中;4.删除原先的txt;5.重命名b.txt;O(∩_∩)O哈哈~ 个人认为可以先根据将txt中的文字先取出来,保存在一个数组中,再将要添加的文字加入到数组的前面,然后再将数组写入原来的txt文本文件中!不知道这样行不行,请各大侠解说一下! 先把原来文件中的字符串都拿出来并作为一个String保存下来,然后创建同名文件,再直接往里写内容;最后把之前拿出来的String用append方法添加到文件中;OK 我的方法更简单:1、把老文件改个临时的名字2、把新内容用老文件的名字写入3、用DOS的COPY命令合并2个文件 import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;public class Sample06 { /** * @param args */ public static void main(String[] args) { File f = new File("test.txt"); boolean isOk = true; if (!f.exists()) { try { f.createNewFile(); } catch (IOException e) { e.printStackTrace(); isOk = false; } } // 输出到文件 if (isOk) { try { FileOutputStream fos = new FileOutputStream(f, true); fos.write("今天是个好天气!".getBytes()); fos.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } else { System.out.println("文件不存在!"); } // 从文件读取 if (isOk) { try { FileInputStream fis = new FileInputStream(f); // int data = 0;// while ((data = fis.read()) != -1) {// System.out.write(data);// }// System.out.flush();// System.out.println(); byte[] data = new byte[1024]; int len = 0; while ((len = fis.read(data)) != -1) { System.out.print(new String(data, 0, len)); }// while ((len = fis.read(data, 0, 3)) != -1) {// System.out.print(new String(data, 0, len));// } System.out.println(); fis.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }} 不好意思,log4j好像是后面添加的,呵呵 一段小代码报错,我找不到原因 iText遇到的问题 [给新手看]计算器示例 MTK手机软件平台规划 JTable如何使用 创建包出错!!!! 高分求助:关于自定义Table控件的问题!在线等待。。。 四个数列出多种排法不知道我的代码那错了 请各位高手帮我看看我的这个问题出在那里了!谢谢 流流流流流流流流流流流流流流流流流流流流流流流流流! 正则表达式 能不能取匹配以后的字符串 问一个先前问过的老问题
java.io.RandomAccessFile ra = new java.io.RandomAccessFile("11.txt","rwd");
//设置到文件开头
ra.seek(0);
//在文件开头添加“11”
ra.writeBytes("11");
这段代码会把原来文件(11.txt)中的前两个字覆盖掉!
思路:
1、把txt原来内容取出来,保存在byte数组里。
2、然后输出流把后来内容写入。
3、然后追加刚才取出来的内容。
2.写你打算追加的一些数据;
3.读原先的txt文件内容,写到b.txt中;
4.删除原先的txt;
5.重命名b.txt;O(∩_∩)O哈哈~
最后把之前拿出来的String用append方法添加到文件中;
OK
1、把老文件改个临时的名字
2、把新内容用老文件的名字写入
3、用DOS的COPY命令合并2个文件
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;public class Sample06 { /**
* @param args
*/
public static void main(String[] args) {
File f = new File("test.txt");
boolean isOk = true;
if (!f.exists()) {
try {
f.createNewFile();
} catch (IOException e) {
e.printStackTrace();
isOk = false;
}
}
// 输出到文件
if (isOk) {
try {
FileOutputStream fos = new FileOutputStream(f, true);
fos.write("今天是个好天气!".getBytes());
fos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
} else {
System.out.println("文件不存在!");
}
// 从文件读取
if (isOk) {
try {
FileInputStream fis = new FileInputStream(f);
// int data = 0;
// while ((data = fis.read()) != -1) {
// System.out.write(data);
// }
// System.out.flush();
// System.out.println();
byte[] data = new byte[1024];
int len = 0;
while ((len = fis.read(data)) != -1) {
System.out.print(new String(data, 0, len));
}
// while ((len = fis.read(data, 0, 3)) != -1) {
// System.out.print(new String(data, 0, len));
// }
System.out.println();
fis.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}}