请写一个完整的Java程序,用文件读入输出方法将d盘下的test1.txt文件复制到e
108.请写一个完整的Java程序,用文件读入输出方法将d盘下的test1.txt文件复制到e盘下的test2.txt文件中。test1.txt文件中每行有一个字符串,格...
108. 请写一个完整的Java程序,用文件读入输出方法将d盘下的test1.txt文件复制到e盘下的test2.txt文件中。
test1.txt文件中每行有一个字符串,格式为:
姓名 性别 生日
如:
张三 男 19850104
李四 女 19840509
王五 女19880421
......
test2.txt文件中仅有一行文字,格式为:
姓名 生日
其中储存的是年龄最小的女生的姓名和生日。
这道题怎么写啊 求助求助~~~~ 展开
test1.txt文件中每行有一个字符串,格式为:
姓名 性别 生日
如:
张三 男 19850104
李四 女 19840509
王五 女19880421
......
test2.txt文件中仅有一行文字,格式为:
姓名 生日
其中储存的是年龄最小的女生的姓名和生日。
这道题怎么写啊 求助求助~~~~ 展开
1个回答
展开全部
题目有点看不懂,我理解是将test1中性别为女并且生日最小的学生姓名和生日存入test2
import java.util.*;
import java.io.*;
class Student
{
String name;
String sex;
String birthday;
}
public class Person
{
public static void main(String[] args)
{
FileInputStream fis=null;
Scanner sc=null;
FileWriter fw=null;
BufferedWriter bw=null;
try
{
fis=new FileInputStream("d:\\test1.txt");
sc=new Scanner(fis);
fw=new FileWriter("e:\\test2.txt");
bw=new BufferedWriter(fw);
List<Student> list=new ArrayList<Student>();
sc.nextLine();//读文件的第一行
while(sc.hasNext())
{
Student temp=new Student();
temp.name=sc.next();
temp.sex=sc.next();
temp.birthday=sc.next();
if(temp.sex.equals("女"))//只加性别为女的
{
list.add(temp);
}
}
Collections.sort(list, new Comparator<Student>()//按生日字符串的字典顺序排序,生日从小到大
{
public int compare(Student o1,Student o2)
{
return o1.birthday.compareTo(o2.birthday);
}
});
bw.write("姓名 生日");
bw.newLine();
for(int i=0;i<list.size();i++)
{
Student temp=list.get(i);
bw.write(temp.name+" "+temp.birthday);
bw.newLine();//输入换行符
Student temp1=list.get(i+1);
if(!temp.birthday.equals(temp1.birthday))//判断是否有生日相同的
{
break;
}
}
}
catch(Exception e)
{
e.printStackTrace();
}
finally
{
try
{
bw.close();//关闭流
fis.close();
sc.close();
fw.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
}
import java.util.*;
import java.io.*;
class Student
{
String name;
String sex;
String birthday;
}
public class Person
{
public static void main(String[] args)
{
FileInputStream fis=null;
Scanner sc=null;
FileWriter fw=null;
BufferedWriter bw=null;
try
{
fis=new FileInputStream("d:\\test1.txt");
sc=new Scanner(fis);
fw=new FileWriter("e:\\test2.txt");
bw=new BufferedWriter(fw);
List<Student> list=new ArrayList<Student>();
sc.nextLine();//读文件的第一行
while(sc.hasNext())
{
Student temp=new Student();
temp.name=sc.next();
temp.sex=sc.next();
temp.birthday=sc.next();
if(temp.sex.equals("女"))//只加性别为女的
{
list.add(temp);
}
}
Collections.sort(list, new Comparator<Student>()//按生日字符串的字典顺序排序,生日从小到大
{
public int compare(Student o1,Student o2)
{
return o1.birthday.compareTo(o2.birthday);
}
});
bw.write("姓名 生日");
bw.newLine();
for(int i=0;i<list.size();i++)
{
Student temp=list.get(i);
bw.write(temp.name+" "+temp.birthday);
bw.newLine();//输入换行符
Student temp1=list.get(i+1);
if(!temp.birthday.equals(temp1.birthday))//判断是否有生日相同的
{
break;
}
}
}
catch(Exception e)
{
e.printStackTrace();
}
finally
{
try
{
bw.close();//关闭流
fis.close();
sc.close();
fw.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |