3x
如:
a.txt
有数据
line1:this is line1,
line2: this is line2,
如何删除第一行保留第二行
如:
a.txt
有数据
line1:this is line1,
line2: this is line2,
如何删除第一行保留第二行
解决方案 »
- 怎样在下一个jsp页面中获得这个链接的id?
- 帮忙写个关于JUnit测试的完整的测试框架,比如测试一个简单的加法!add(int,int)
- 怎么实现文件的分割与合并?
- 如何通过java将文件上载到不同系统中目录下?
- 求助大侠帮我看看俄罗斯方块的代码
- 求助: 如何执行一个程序但又显示dos窗口?
- 一个取字符的问题,进来看看!
- java.util.date 和 java.sql.date 两者之间有什么不同?各自用在那些场合比较合适!
- 100分求问简单问题!!怎么把某一文件夹下图片文件打开并全部显示出来?
- 请来分析一下报错原因!!!
- 为什么内部类只能访问外部类中的 final型的常量
- java可以调用exe,但怎么调用exe程序里的东西啊,比如调用 QQ.exe,再输入帐号,密码自动登录
就像数组一样,你要删除数组中间的一个元素,就必须移动之后的元素。除非你要删除的恰好是一个扇区的内容,可以通过更改文件分配表,就不必移动文件内容
这在java下做不到。
好多杀毒软件也是这么干的。
要是删最后的,以前可用过debug修改文件长度。你要是能用java实现,也可以。
思路是这样的:你先把你的文件中除了要删除的那一行外的所有内容输出到一个临时文件,删除原文件,再把该临时文件名改成原文件名。代码如下:try {
String removeStr="line1:this is line1, ";
File inFile = new File("E:/Websites/a.txt");
File outFile = new File("E:/Websites/临时.txt");
BufferedReader br = new BufferedReader(new FileReader(inFile));
BufferedWriter bw = new BufferedWriter(new FileWriter(outFile));
String line1="";
for (String line=br.readLine();
line != null;
line=br.readLine()) {
System.out.println("开始循环!");
if (line.indexOf(removeStr) !=-1) { //找到要删除的那一行
System.out.println("跳过"+removeStr);
continue;
} //这个indexOf就可以判断是否存在特殊字符
line1=line+'\n'; //得到文件中除了要删除的类型名外的每行内容
String seperator=System.getProperty("line.separator");
line1=line1.replace("\n", seperator);//若不这样处理打印出的换行符就是一个黑点
bw.write(line1);
//bw.newLine();
}
br.close();
bw.flush();
bw.close();
if (inFile.delete()) { //删除a.txt文件
outFile.renameTo(inFile); //把 临时.txt改名为 webKindName.txt
}
System.out.println("Remove a line!!"); //检验以上程序是否可以执行
} catch (IOException e) {
System.out.println("Erro!!"); //出现错误就提示
}希望对你有帮助!