如何阅读下一行? package项目2; 导入java.io.BufferedReader; 导入java.io.FileReader; 导入java.io.IOException; 导入java.util.ArrayList; 公共类项目2{ 公共静态void main(字符串[]args){ 字符串FirstName=“”; 字符串LastName=“”; ArrayList aList=新的ArrayList(); 试一试{ BufferedReader br=新的BufferedReader(新的文件阅读器(“C:\\Users\\vanchi\\Desktop\\test.txt”); 如果(!br.ready()) 抛出新IOException(); 而((line=br.readLine())!=null){ 列表.添加(行); //系统输出打印项次(行); 字符串tmp[]=line.split(“,”); FirstName=tmp[0]; LastName=tmp[1]; System.out.println(FirstName+“\t”+LastName); } br.close(); }捕获(IOE异常){ e、 printStackTrace(); } /*int sz=aList.size(); 对于(int i=0;i

如何阅读下一行? package项目2; 导入java.io.BufferedReader; 导入java.io.FileReader; 导入java.io.IOException; 导入java.util.ArrayList; 公共类项目2{ 公共静态void main(字符串[]args){ 字符串FirstName=“”; 字符串LastName=“”; ArrayList aList=新的ArrayList(); 试一试{ BufferedReader br=新的BufferedReader(新的文件阅读器(“C:\\Users\\vanchi\\Desktop\\test.txt”); 如果(!br.ready()) 抛出新IOException(); 而((line=br.readLine())!=null){ 列表.添加(行); //系统输出打印项次(行); 字符串tmp[]=line.split(“,”); FirstName=tmp[0]; LastName=tmp[1]; System.out.println(FirstName+“\t”+LastName); } br.close(); }捕获(IOE异常){ e、 printStackTrace(); } /*int sz=aList.size(); 对于(int i=0;i,java,arraylist,Java,Arraylist,确保文件的每一行确实至少有一个“,”,并使代码更加健壮: package project2; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; public class Project2 { pub

确保文件的每一行确实至少有一个“,”,并使代码更加健壮:

        package project2;
        import java.io.BufferedReader; 
         import java.io.FileReader; 
         import java.io.IOException;
         import java.util.ArrayList;
        public class Project2 {

        public static void main(String[] args) {

            String FirstName = "";
            String LastName = "";
            ArrayList aList = new ArrayList();

            try {
           BufferedReader br = new BufferedReader(new FileReader("C:\\Users\\vanchi\\Desktop\\test.txt"));


                if(!br.ready())
                    throw new IOException();

                while ((line = br.readLine())!=null){
                    aList.add(line);
                    //System.out.println(line);
                    String tmp[] = line.split(",");
                    FirstName =  tmp[0];
                    LastName = tmp[1];


                    System.out.println(FirstName + "\t" + LastName);
                }
                br.close();

             }catch (IOException e){
                    e.printStackTrace();

           }
           /* int sz = aList.size();

            for(int i=0; i<sz; i++){

                System.out.println(aList.get(i).toString()); */
              }
您只需删除这些行即可。

因此,给您:)

V1: 包natalie.person.v1

    if(!br.ready())
           throw new IOException();
导入java.io.BufferedReader;
导入java.io.File;
导入java.io.FileReader;
导入java.io.IOException;
导入java.util.HashSet;
导入java.util.Set;
公共类运行库{
公共静态void main(字符串[]args){
Set allPersons=new HashSet();//或使用java.util.TreeSet()对列表进行排序
File dataFolder=新文件(“/home/agudkov/projects/rest/Natalie/data”);//请更改路径
对于(文件:dataFolder.listFiles()){
如果(!file.getName().endsWith(“.txt”){//请检查文件是否有.txt ext
继续;
}
addPersonsFromFile(文件,所有人);
}
for(字符串人:所有人){
系统输出打印项次(人);
}
}
私有静态void addPersonsFromFile(文件数据文件,设置为Set){
BufferedReader br=null;
试一试{
br=新的BufferedReader(新的文件读取器(数据文件));
弦线;
而((line=br.readLine())!=null){
字符串tmp[]=line.split(“,”);
如果(tmp长度<2){
继续;
}
字符串firstName=tmp[0];
字符串lastName=tmp[1];
toSet.add(firstName+“\t”+lastName);
}            
}捕获(IOE异常){
e、 printStackTrace();
}最后{
如果(br!=null){
试一试{
br.close();
}捕获(IOE){}
}
}
}
}
V2有两类:

    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileReader;
    import java.io.IOException;
    import java.util.HashSet;
    import java.util.Set;

    public class RunMe {

        public static void main(String[] args) {

            Set<String> allPersons = new HashSet<>(); // or use java.util.TreeSet() to have the list sorted

            File dataFolder = new File("/home/agudkov/projects/rest/Natalie/data"); // change the path, pls

            for (File file : dataFolder.listFiles()) {            
                if (!file.getName().endsWith(".txt")) { // check the file has .txt ext
                    continue;
                }

                addPersonsFromFile(file, allPersons);
            }

            for (String person : allPersons) {
                System.out.println(person);
            }
        }

        private static void addPersonsFromFile(File dataFile, Set<String> toSet) {
            BufferedReader br = null;
            try {
                br = new BufferedReader(new FileReader(dataFile));

                String line;

                while ((line = br.readLine()) != null) {
                    String tmp[] = line.split(",");

                    if (tmp.length < 2) {
                        continue;
                    }

                    String firstName = tmp[0];
                    String lastName = tmp[1];

                    toSet.add(firstName + "\t" + lastName);
                }            

            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                if (br != null) {
                    try {
                        br.close();
                    } catch (IOException e) {}
                }
            }
        }
    }
包natalie.person.v2;
导入java.util.Objects;
公共类人员实现可比性{
公共静态人员解析(字符串行){
字符串[]tmp=line.split(“,”);
如果(tmp.length>=2){
返回新人员(tmp[0],tmp[1]);
}
返回null;
}
私有最终字符串名;
私有最终字符串lastName;
公众人物(字符串名、字符串名){
this.firstName=firstName;
this.lastName=lastName;
}
公共字符串getFirstName(){
返回名字;
}
公共字符串getLastName(){
返回姓氏;
}
@凌驾
公共int hashCode(){
int hash=7;
hash=79*hash+Objects.hashCode(this.firstName);
hash=79*hash+Objects.hashCode(this.lastName);
返回散列;
}
@凌驾
公共布尔等于(对象obj){
if(obj==null){
返回false;
}
如果(getClass()!=obj.getClass()){
返回false;
}
最终人员其他=(人员)obj;
如果(!Objects.equals(this.firstName,other.firstName)){
返回false;
}
如果(!Objects.equals(this.lastName,other.lastName)){
返回false;
}
返回true;
}
@凌驾
公共内部比较(o人){
int结果=0;
if(firstName!=null){
结果=firstName.compareTo(o.firstName);
if(result==0&&lastName!=null){
结果=lastName.compareTo(o.lastName);
}
}
返回结果;
}        
@凌驾
公共字符串toString(){
返回firstName+'\t'+lastName;
}        
}
natalie.person.v2包;
导入java.io.BufferedReader;
导入java.io.File;
导入java.io.FileReader;
导入java.io.IOException;
导入java.util.HashSet;
导入java.util.Set;
公共类运行库{
公共静态void main(字符串[]args){
Set allPersons=new HashSet();//或使用java.util.TreeSet()对列表进行排序
File dataFolder=新文件(“/home/agudkov/projects/rest/Natalie/data”);//请更改路径
对于(文件:dataFolder.listFiles()){
如果(!file.getName().endsWith(“.txt”){//请检查文件是否有.txt ext
继续;
}
addPersonsFromFile(文件,所有人);
}
for(个人:所有人){
System.out.println(
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileReader;
    import java.io.IOException;
    import java.util.HashSet;
    import java.util.Set;

    public class RunMe {

        public static void main(String[] args) {

            Set<String> allPersons = new HashSet<>(); // or use java.util.TreeSet() to have the list sorted

            File dataFolder = new File("/home/agudkov/projects/rest/Natalie/data"); // change the path, pls

            for (File file : dataFolder.listFiles()) {            
                if (!file.getName().endsWith(".txt")) { // check the file has .txt ext
                    continue;
                }

                addPersonsFromFile(file, allPersons);
            }

            for (String person : allPersons) {
                System.out.println(person);
            }
        }

        private static void addPersonsFromFile(File dataFile, Set<String> toSet) {
            BufferedReader br = null;
            try {
                br = new BufferedReader(new FileReader(dataFile));

                String line;

                while ((line = br.readLine()) != null) {
                    String tmp[] = line.split(",");

                    if (tmp.length < 2) {
                        continue;
                    }

                    String firstName = tmp[0];
                    String lastName = tmp[1];

                    toSet.add(firstName + "\t" + lastName);
                }            

            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                if (br != null) {
                    try {
                        br.close();
                    } catch (IOException e) {}
                }
            }
        }
    }
    package natalie.person.v2;

    import java.util.Objects;

    public class Person implements Comparable<Person> {

        public static Person parse(String line) {
            String[] tmp = line.split(",");
            if (tmp.length >= 2) {
                return new Person(tmp[0], tmp[1]);
            }
            return null;
        }

        private final String firstName;
        private final String lastName;

        public Person(String firstName, String lastName) {
            this.firstName = firstName;
            this.lastName = lastName;
        }

        public String getFirstName() {
            return firstName;
        }

        public String getLastName() {
            return lastName;
        }

        @Override
        public int hashCode() {
            int hash = 7;
            hash = 79 * hash + Objects.hashCode(this.firstName);
            hash = 79 * hash + Objects.hashCode(this.lastName);
            return hash;
        }

        @Override
        public boolean equals(Object obj) {
            if (obj == null) {
                return false;
            }
            if (getClass() != obj.getClass()) {
                return false;
            }
            final Person other = (Person) obj;
            if (!Objects.equals(this.firstName, other.firstName)) {
                return false;
            }
            if (!Objects.equals(this.lastName, other.lastName)) {
                return false;
            }
            return true;
        }

        @Override
        public int compareTo(Person o) {
            int result = 0;
            if (firstName != null) {
                result = firstName.compareTo(o.firstName);
                if (result == 0 && lastName != null) {
                    result = lastName.compareTo(o.lastName);
                }
            }
            return result;
        }        

        @Override
        public String toString() {
            return firstName + '\t' + lastName;
        }        
    }




    package natalie.person.v2;

    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileReader;
    import java.io.IOException;
    import java.util.HashSet;
    import java.util.Set;

    public class RunMe {
        public static void main(String[] args) {

            Set<Person> allPersons = new HashSet<>(); // or use java.util.TreeSet() to have the list sorted

            File dataFolder = new File("/home/agudkov/projects/rest/Natalie/data"); // change the path, pls

            for (File file : dataFolder.listFiles()) {            
                if (!file.getName().endsWith(".txt")) { // check the file has .txt ext
                    continue;
                }

                addPersonsFromFile(file, allPersons);
            }

            for (Person person : allPersons) {
                System.out.println(person);
            }
        }

        private static void addPersonsFromFile(File dataFile, Set<Person> toSet) {
            BufferedReader br = null;
            try {
                br = new BufferedReader(new FileReader(dataFile));

                String line;

                while ((line = br.readLine()) != null) {
                    Person person = Person.parse(line);

                    if (person == null) {
                        continue;
                    }

                    toSet.add(person);
                }            

            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                if (br != null) {
                    try {
                        br.close();
                    } catch (IOException e) {}
                }
            }
        }
    }