java以随机顺序读取文本文件列标题
我每天都收到一份文件:java以随机顺序读取文本文件列标题,java,Java,我每天都收到一份文件: 刺是有界的吗 有5列或更多列 有3个公共列-lastName、firstName、address 问题:文件的列顺序定期更改 目标:打印lastName、firstName和address的列数据,而不考虑列顺序 我一直在使用以下代码并手动更改数据值以匹配列 testfile1.txt 1st day file format ID lastName address phone firstName 45 Gates
- 刺是有界的吗
- 有5列或更多列
- 有3个公共列-lastName、firstName、address
testfile1.txt
1st day file format
ID lastName address phone firstName
45 Gates 111 some lane 777-888-9999 Bill
2nd day file format
address ID phone firstName lastName
111 some lane 81 444-555-1111 John Doe
-
我想你可以试试下面的方法-
import java.io.BufferedReader;
import java.io.FileReader;
public class test2 {
public static void main(String args[]) throws Exception {
String dataFileName = "C:/testfiles/testfile1.txt";
String line;
boolean isFirstColumn = true;
BufferedReader bReader = new BufferedReader(new FileReader(dataFileName));
int[] order_Fname_Lname_Address = new int[3];
while ((line = bReader.readLine()) != null) {
String datavalue[] = line.split("\t");
if(isFirstColumn) {
for (int i = 0; i < datavalue.length; i++) {
switch (datavalue[i]) {
case "firstName":
order_Fname_Lname_Address[0] = i;
break;
case "lastName":
order_Fname_Lname_Address[1] = i;
break;
case "address":
order_Fname_Lname_Address[2] = i;
break;
}
}
isFirstColumn = false;
continue;
}
String firstName = datavalue[order_Fname_Lname_Address[0]];
String lastName = datavalue[order_Fname_Lname_Address[1]];
String address = datavalue[order_Fname_Lname_Address[2]];
System.out.println(lastName + " " + firstName + "," + address);
}
bReader.close();
}
}
导入java.io.BufferedReader;
导入java.io.FileReader;
公共类test2{
公共静态void main(字符串args[])引发异常{
String dataFileName=“C:/testfiles/testfile1.txt”;
弦线;
布尔值isFirstColumn=true;
BufferedReader bReader=新的BufferedReader(新文件读取器(dataFileName));
int[]order_Fname_Lname_Address=新int[3];
而((line=bReader.readLine())!=null){
字符串数据值[]=行分割(“\t”);
if(isFirstColumn){
for(int i=0;i
这是第一种方法。我会这样尝试:
int colLastName, colFirstName, colAddress;
line = bReader.readLine();
String columnOrder []= line.split("\t");
for (int i=0; i< columnOrder.length; i++){
if (columnOrder[i].equals("lastName")){
colLastName = i;
}
else if (columnOrder[i].equals("firstName"){
colFirstName = i;
}
else if (columnOrder[i].equals("address"){
colAddress = i;
}
}
while ((line = bReader.readLine()) != null) {
lineNumber++;
String datavalue[] = line.split("\t");
String lastName = datavalue[colLastName];
String firstName = datavalue[colFirstName];
String address = datavalue[colAddress];
System.out.println(lastName + "'" + firstName + "," + address);
}
int colLastName、colFirstName、colAddress;
line=bReader.readLine();
字符串columnOrder[]=行。拆分(“\t”);
for(int i=0;i
int colLastName, colFirstName, colAddress;
line = bReader.readLine();
String columnOrder []= line.split("\t");
for (int i=0; i< columnOrder.length; i++){
if (columnOrder[i].equals("lastName")){
colLastName = i;
}
else if (columnOrder[i].equals("firstName"){
colFirstName = i;
}
else if (columnOrder[i].equals("address"){
colAddress = i;
}
}
while ((line = bReader.readLine()) != null) {
lineNumber++;
String datavalue[] = line.split("\t");
String lastName = datavalue[colLastName];
String firstName = datavalue[colFirstName];
String address = datavalue[colAddress];
System.out.println(lastName + "'" + firstName + "," + address);
}