나는 COBOL에 많은 프로그램이있는 인쇄 회사에서 일하고 있으며, 은 COBOL 프로그램을 JAVA 프로그램으로 변환하도록되어있다. 나는 한 번의 회심에서 방해물에 빠졌습니다. 각 줄이 레코드이고 각 줄마다 데이터가 차단된다는 파일을 가져와야합니다. 라인의JAVA를 사용하여 2 개의 필드로 파일 정렬하기
예 내가 행의 첫 문자로 다음 19 ~ 23 자에서 5 자리 숫자로 데이터를 정렬 할 필요가
60000003448595072410013 FFFFFFFFFFV 80 0001438001000014530020120808060134
입니다.
BufferedReader input;
BufferedWriter output;
String[] sort, sorted, style, accountNumber, customerNumber;
String holder;
int lineCount;
int lineCounter() {
int result = 0;
boolean eof = false;
try {
FileReader inputFile = new FileReader("C:\\Users\\cbook\\Desktop\\Chemical\\"
+ "LB26529.fil");
input = new BufferedReader(inputFile);
while (!eof) {
holder = input.readLine();
if (holder == null) {
eof = true;
} else {
result++;
}
}
} catch (IOException e) {
System.out.println("Error - " + e.toString());
}
return result;
}
chemSort(){
lineCount = this.lineCounter();
sort = new String[lineCount];
sorted = new String[lineCount];
style = new String[lineCount];
accountNumber = new String[lineCount];
customerNumber = new String[lineCount];
try {
FileReader inputFile = new FileReader("C:\\Users\\cbook\\Desktop\\Chemical\\"
+ "LB26529.fil");
input = new BufferedReader(inputFile);
for (int i = 0; i < (lineCount + 1); i++) {
holder = input.readLine();
if (holder != null) {
sort[i] = holder;
style[i] = sort[i].substring(0, 1);
customerNumber[i] = sort[i].substring(252, 257);
}
}
} catch (IOException e) {
System.out.println("Error - " + e.toString());
}
}
이 내가 지금까지 가지고 있고이 파일을 정렬에 대해 갈 수있는 올바른 방법 경우 여기에 또는에서 갈 곳 정말 모르겠어요. 파일을 정렬 한 후에는 다른 파일에 저장되고 을 다시 인쇄 할 수 있도록 다른 프로그램으로 처리합니다.
정렬 방법을 명확히 할 수 있습니까? –
죄송합니다. 오름차순으로 5 자리 숫자 다음에 한 자리 숫자로 오름차순으로 정렬하십시오. – JcBook
문자 범위를 보는 비교기를 작성할 수 없습니까? 비교는 동일합니까? 그렇다면 첫 번째 문자를 봅니다. (내가 정확하게 기준을 이해한다면.) –