求助,想从“E:\\1.txt”文件判断是否有'张三'的名字,有的话就写到“E:\\2.txt”内
用java怎么实现啊?
请各位指导!!!!!!!!!!!
import java.io.*;
public class kaoshi
{
public static void main(String[] args) //throws IOException
{
// TODO Auto-generated method stub
try
{
File f1=new File("E:\\1.txt");
File f2=new File("E:\\2.txt");
FileReader reader1=new FileReader(f1);
FileWriter write1=new FileWriter(f2);
char buffer[]=new char[30];
char buffer1[]=new char[30];
//char buffer1[]=new char[20];reader1.read(buffer);
String str;
System.out.println(buffer);
//while()
for(int i=0;i<f1.length();i++)
{
if(buffer[i]=='张')
{
//buffer1[i]=buffer[i];
//buffer1[i+1]=buffer[i+1];
//write1.write(buffer1,0,2);
//System.out.println(buffer1);
str=new String(buffer,0,2);
write1.write(str,0,30);
}}
reader1.close();
write1.close();
//write1.close();
}
catch(IOException e)
{
System.out.println("出现异常");
}
}}
这个程序是有问题的,请大家在这个基础上改进一下!!!!!!!!!
感激不尽...........
用java怎么实现啊?
请各位指导!!!!!!!!!!!
import java.io.*;
public class kaoshi
{
public static void main(String[] args) //throws IOException
{
// TODO Auto-generated method stub
try
{
File f1=new File("E:\\1.txt");
File f2=new File("E:\\2.txt");
FileReader reader1=new FileReader(f1);
FileWriter write1=new FileWriter(f2);
char buffer[]=new char[30];
char buffer1[]=new char[30];
//char buffer1[]=new char[20];reader1.read(buffer);
String str;
System.out.println(buffer);
//while()
for(int i=0;i<f1.length();i++)
{
if(buffer[i]=='张')
{
//buffer1[i]=buffer[i];
//buffer1[i+1]=buffer[i+1];
//write1.write(buffer1,0,2);
//System.out.println(buffer1);
str=new String(buffer,0,2);
write1.write(str,0,30);
}}
reader1.close();
write1.close();
//write1.close();
}
catch(IOException e)
{
System.out.println("出现异常");
}
}}
这个程序是有问题的,请大家在这个基础上改进一下!!!!!!!!!
感激不尽...........
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;public class kaoshi{ public static void main(String[] args){
File f1=new File("E:\\1.txt");
File f2=new File("E:\\2.txt");
try{
BufferedReader reader1=new BufferedReader(new FileReader(f1));
try{
FileWriter write1=new FileWriter(f2);
try{
String line=null;
while((line=reader1.readLine())!=null){
if(line.indexOf("张三")>=0){
write1.write(line+"\r\n");
}
}
}
finally{
write1.close();
}
}
finally{
reader1.close();
}
}
catch(IOException e){
System.out.println("出现异常");
}
}
}
内
另外,请1L的大虾解释下 finally 和catch可以这么放么,第一次见这么放的!
菜鸟飘过,拿10分
if(line.indexOf("张三")>=0){
write1.write(line+"\r\n");
}
改为:
if(line.indexOf("张三")>=0){
write1.write("张三\r\n");
}
2)try不一定要catch,也可以跟finally
3)这样做可以保证reader1 和 write1 都可以被正常close,就算里面发生异常也可以
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;public class kaoshi { public static void main(String[] args) {
String zhangsan = "张三";
File f1 = new File("D:\\1.txt");
File f2 = new File("D:\\2.txt");
BufferedReader reader1 = null;
FileWriter write1 = null;
try {
reader1 = new BufferedReader(new FileReader(f1)); write1 = new FileWriter(f2); String line = null;
String temp = "";
while ((line = reader1.readLine()) != null) {
for (int i = 0; i < line.length(); i++) {
if (line.indexOf(zhangsan) != -1) {
line = line.substring(line.indexOf(zhangsan) + 1, line
.length());
temp += zhangsan + "|";
// write1.write(line + "\r\n");
}
} }
write1.write(temp);
} catch (IOException e) {
System.out.println("出现异常");
} finally {
try {
reader1.close();
write1.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} }
}
}
但是需要改进一下:
1.catch的前面需要加上write1.flush,将内存最后的数据写入,要不然有可能最后的值未写
2.在finally中关闭流时,需要进行是否为null的判断