Java io 问题

sunjia5451937 2009-04-20 09:50:22
在任意盘符读入一个文件。将该文件写入另一个文件。(txt文件就行)
要求:比如文件1和文件2;
将文件里的内容读入文件2中,不删除文件的原内容。
比如:文件1内容:aaasss 文件2内容:zzzxxx
eeesss vvvvvv
cccsss nnnnnn
要求新生成的文件2为:
zzzxxx
aaasss
vvvvvv
eeesss
nnnnnn
cccsss
另外在任意删除其中的任何一行,其余行依次向前递增。由6行变成5行.

...全文
119 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
duan_xcheng 2009-04-21
  • 打赏
  • 举报
回复
赚分!呵呵
  • 打赏
  • 举报
回复
把二楼的代码改改,就可以将文件1的内容插入到文件2的相应位置。
import java.io.*;
public class EmegeFile {
public static void main(String[] args) {
String file1content=null;
String file2content=null;
String[] content1=null;
String[] content2=null;
BufferedWriter bw=null;
StringBuilder s1=new StringBuilder();
StringBuilder s2=new StringBuilder();
int k=0;
try {
File f=new File("1.txt");
File g=new File("2.txt");
FileReader fr=new FileReader(f);
FileReader gr=new FileReader(g);
BufferedReader br=new BufferedReader(fr);
BufferedReader b2=new BufferedReader(gr);

while((file1content=br.readLine())!=null)
{
s1.append(file1content);
s1.append("\n");
}

while((file2content=b2.readLine())!=null)
{
s2.append(file2content);
s2.append("\n");
}
br.close();
content1=s1.toString().split("\n");
System.out.println(content1.length);
content2=s2.toString().split("\n");
FileWriter fw=new FileWriter(g);
bw=new BufferedWriter(fw);
int s=(content1.length<content2.length)?content1.length:content2.length;
int e=(content1.length<content2.length)?content2.length:content1.length;
for(int i=0;i<s;i++){
bw.write(content2[i]);
bw.newLine();
bw.write(content1[i]);
bw.newLine();
k=i+1;
}

while(k<e){

if(content1.length<e)
{
bw.write(content2[k]);
bw.newLine();
}
else{

bw.write(content1[k]);
bw.newLine();
}
k++;

}
bw.flush();
bw.close();
}catch(IOException e)
{
System.out.println("error");
}


}

}
huogongyanchang 2009-04-21
  • 打赏
  • 举报
回复
不是多懂!
zhyanl 2009-04-21
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 sunjia5451937 的回复:]
newcontent=sb.toString().split("\n");//这句是什么意思呢,哪位给解释一下啊
[/Quote]
一行作为数组的一个元素,可以查看一下String类的API
  • 打赏
  • 举报
回复
你可以看看api文档啊,比如这个文档里的这个例子
The string "boo:and:foo", for example, yields the following results with these expressions:
Regex Result
: { "boo", "and", "foo" }
o { "b", "", ":and:f" }

就是把它分成几个字符串吧,去掉换行,依据换行符分
sunjia5451937 2009-04-21
  • 打赏
  • 举报
回复
newcontent=sb.toString().split("\n");//这句是什么意思呢,哪位给解释一下啊
zhangpeixv 2009-04-20
  • 打赏
  • 举报
回复
读写文件可以按行号的,而且还可以接本行写入或者另起一行写入
具体记不清了
LZ多查查这方面的资料
WN2007 2009-04-20
  • 打赏
  • 举报
回复
删除的实现也可以读出后删除再写入
WN2007 2009-04-20
  • 打赏
  • 举报
回复
读入一个文件。将该文件写入另一个文件
基本想法是:读出两个文件的内容,然后共同写入到另一个文件中

import java.io.*;
import java.util.*;

public class jdbTest {

public static void main(String[] args) {
String file1content=null;
String file2content=null;
String[] newcontent=null;
BufferedWriter bw=null;
StringBuilder sb=new StringBuilder();;
try {
File f=new File("d:/file1.txt");
File g=new File("d:/file2.txt");
FileReader fr=new FileReader(f);
FileReader gr=new FileReader(g);
BufferedReader br=new BufferedReader(fr);
BufferedReader b2=new BufferedReader(gr);
file1content=br.readLine();
while(file1content!=null)
{
sb.append(file1content);
sb.append("\n");
file1content=br.readLine();
}
file2content=b2.readLine();
while(file2content!=null)
{
sb.append(file2content);
sb.append("\n");
file2content=b2.readLine();
}

br.close();
newcontent=sb.toString().split("\n");

FileWriter fw=new FileWriter(g);
bw=new BufferedWriter(fw);
for(int i=0;i<newcontent.length;i++){
bw.write(newcontent[i]);
bw.newLine();
}
bw.flush();
bw.close();
}catch(IOException e)
{
System.out.println("error");
}


}
}

sunjia5451937 2009-04-20
  • 打赏
  • 举报
回复
各位大神,给点思路吧。真是不会了。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧