现在要读取一个TXT文件,文件内容如下:
ID NAME SEX RESULT
1 Jack man 65
2 Marry female 80
3 Tom man 90
……
如此等等,要求把性别为男的数据取出来另存道一个txt文件中,请各位高手伸出援助之手!万分感谢!我很苦恼!最好给我代码哦!
ID NAME SEX RESULT
1 Jack man 65
2 Marry female 80
3 Tom man 90
……
如此等等,要求把性别为男的数据取出来另存道一个txt文件中,请各位高手伸出援助之手!万分感谢!我很苦恼!最好给我代码哦!
解决方案 »
- 用java实现从文件中读取数据并写入表中
- java基础
- 一个简单的编码的问题
- 请问在重写paintComponent()方法或者在重写paint()方法的时候,第一句添加super.paintComponent()或者super.paint()的意义
- 静态方法
- ★★★百分求一个类,实现集合接口(Set)的一个类!
- Java获取网页信息,如何登录弹出弹出的对话框?
- JDK读码的疑问 O-O问题 ArrayList的原理 非高手勿扰!
- no provider for Address type: rfc822?
- 请问大家,用java作图形应用程序可以脱离浏览器吗,一定需要GUI的图形操作系统支持吗?
- addShutdownHook()在Linux下无效!?
- 这样能进行时间比较吗
type a.txt | grep man >> b.txt
type a.txt | grep man >> b.txt
BufferedReader br =
new BufferedReader(
new InputStreamReader(
new InputStream(source.txt
)
)
);
String str = br.readline();
while(str!=null) {
int index = str.lastIndexOf("man");
if(index>5){
System.out.println(str);
//自己写代码把str复制到来外一个文件
}
}
不好意思,头晕了
你找一个
new BufferedReader(
new InputStreamReader(
new FileInputStream(source.txt
)
)
);
性别为男是man?应该是male吧~~~~
private BufferedWriter bw; private void init()
{
try
{
br = new BufferedReader(new InputStreamReader(new FileInputStream(path)));
}
catch(Exception e){ e.printStackTrace();}
} public Vector read()
{
Vector ipVector = new Vector();
try
{
while (-1 != br.read())
{
ipVector.add( br.readLine());
}
readClose();
}
catch(Exception e){e.printStackTrace();}
return ipVector;
public BufferedWriter getBw()
{
try
{
bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(path)));
}
catch(Exception e){e.printStackTrace();}
return bw;
} }能看懂吧,你要的都有啦。判断条件你自己填吧
BufferedReader in = new BufferedReader(new FileReader("d:\\aa.txt"));
BufferedWriter out = new BufferedWriter(new FileWriter("d:\\bb.txt"));
//判断SEX所在的列
String s = in.readLine();
int pos;
StringTokenizer stn = new StringTokenizer(s);
for(pos = 0; stn.hasMoreElements(); pos++){
if(((String)stn.nextElement()).equals("SEX"))
break;
}
//写入表头
out.write(s);
out.write(System.getProperty("line.separator"));
while((s = in.readLine())!=null) {
stn = new StringTokenizer(s);
for(int i=0; i<pos; i++)
stn.nextElement();
if(((String)stn.nextElement()).equals("man")){
out.write(s);
out.write(System.getProperty("line.separator"));
}
}
out.close();
in.close();
System.out.println(pos);
}catch (Exception e){
e.printStackTrace();
}
名字里也可能包含man子串
:
import java.io.*;
public class Test
{
public static void main(String args[]) throws Exception
{ String s=null;
FileReader fr = new FileReader("a.txt");
BufferedReader br = new BufferedReader(fr);
FileWriter fw = new FileWriter("b.txt");
BufferedWriter bw = new BufferedWriter(fw);
while((s=br.readLine())!=null)
{
System.out.println(s);
if (s.indexOf("man")!=-1)
{
bw.write(s);
bw.newLine();
}
}
br.close();
bw.close();
}
}
if (s.indexOf(" man ")!=-1)
这样够科学了吧?
a.txt表示源文件。
b.txt表示生成的新文件
改为一个参数就通用了吧
(\\d+)\\t(\\w+)\\tman\\t(\\d+)
import java.io.*;
import java.util.*;class iofile
{
private BufferedReader br;
private BufferedWriter bw;
private String readFile,writeFile;
private Vector ipVector;
iofile(String read,String write) //构造函数
{
readFile=read;
writeFile=write;
ipVector = new Vector();
try//源文件
{
br = new BufferedReader(new InputStreamReader(new FileInputStream(readFile)));
}
catch(Exception e){ e.printStackTrace();}
try//目标文件
{
bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(writeFile)));
}
catch(Exception e){e.printStackTrace();}
}
private Vector readLines()//读取源文件中的每一行到Vector中
{
try
{
String s;
while ( (s=br.readLine())!=null)
{
if(s.lastIndexOf("man")!=-1)
ipVector.add(s);
}
br.close();
}
catch (Exception e)
{
e.printStackTrace();
}
return ipVector;
}
public void writeLines()
{
readLines();
int i;
try
{
System.out.println(ipVector.size());
for (i = 0; i < ipVector.size(); i++)
{
System.out.println((String) ipVector.get(i));
bw.write( (String) ipVector.get(i));
bw.write("\r\n");
}
bw.close();
}
catch(Exception e){e.printStackTrace();}
}
}public class HH
{
public static void main(String args[])
{
String source,dest;
source="D:\\java_home\\iofile\\source.txt";
dest="D:\\a.txt";
iofile filter=new iofile(source,dest);
filter.writeLines();
}
}
private BufferedReader br;
private BufferedWriter bw; private void init()
{
try
{
br = new BufferedReader(new InputStreamReader(new FileInputStream(path)));
}
catch(Exception e){ e.printStackTrace();}
} public Vector read()
{
Vector ipVector = new Vector();
try
{
while (-1 != br.read())
{
ipVector.add( br.readLine());
}
readClose();
}
catch(Exception e){e.printStackTrace();}
return ipVector;
public BufferedWriter getBw()
{
try
{
bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(path)));
}
catch(Exception e){e.printStackTrace();}
return bw;
} }
12 Farmany female 97
那么楼上的筛选方法就把这一行也写入了
当然,也谢谢大家,学到了不少东西。