Pessoal, procurei se já existia algum post no fórum sobre e não encontrei… Espero não estar repetindo.
Estou estudando esse exemplo que em partes atende a minha necessidade, só que é o seguinte… A leitura do .txt está sendo considerada por espaços. Ex:
01.txt (nome exemplo do arquivo que contém)
01 0051
02.txt (nome exemplo do arquivo que contém)
010051
Ao ler o primeiro arquivo (01.txt), minha classe traz o seguinte:
Lin01Campo01 Lin01Campo02
01 0051
Mas o que eu preciso é que que seja por posições e não espaços, ou seja, ao ler o segundo arquivo (02.txt), ao invés de exibir:
Lin01Campo01 Lin01Campo02
010051
Ele considere duas posições e mesmo sem espaço as outras quatro posições sejam separadadas:
Lin01Campo01 Lin01Campo02
01 0051
Segue a classse ReadTextFile.java ----------------------
import java.io.File;
import java.util.NoSuchElementException;
import java.util.Scanner;
import java.io.FileNotFoundException;
import java.lang.IllegalStateException;
import txt.AccountRecordWebservices;
public class ReadTextFile {
private Scanner input;
// permite ao usuário abrir o arquivo
public void openFile() {
try {
input = new Scanner(new File("teste.txt"));
} // fim do try
catch (FileNotFoundException fileNotFoundException) {
System.err.println(" Error opening file. ");
System.exit(0);
}// fim do catch ,r' -
} // fim do método openFile
// lê o registro no arquivo
public void readRecords() {
// objeto a ser gravado na tela
AccountRecordWebservices record = new AccountRecordWebservices();
System.out.printf("%s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s\n",
"Lin01Campo01", "Lin01Campo02",
"Lin01Campo03", "Lin01Campo04", "Lin01Campo05", "Lin01Campo06",
"Lin01Campo07", "Lin01Campo08", "Lin01Campo09", "Lin01Campo10",
"Lin01Campo11", "Lin01Campo12", "Lin01Campo13", "Lin01Campo14",
"Lin01Campo15", "Lin01Campo16");
try // lê os registros no arquivo utilizando o objeto Scanner
{
while (input.hasNext()) {
record.setlin01campo01(input.next());
record.setlin01campo02(input.next());
record.setlin01campo03(input.next());
record.setlin01campo04(input.next());
record.setlin01campo05(input.next());
record.setlin01campo06(input.next());
record.setlin01campo07(input.next());
record.setlin01campo08(input.next());
record.setlin01campo09(input.next());
record.setlin01campo10(input.next());
record.setlin01campo11(input.next());
record.setlin01campo12(input.next());
record.setlin01campo13(input.next());
record.setlin01campo14(input.next());
record.setlin01campo15(input.next());
record.setlin01campo16(input.next());
// exibe o conteúdo de registro
System.out.printf("%12s %12s %12s %12s %12s %12s %12s %12s %12s %12s %12s %12s %12s %12s %12s %12s\n",
record.getlin01campo01(), record.getlin01campo02(),
record.getlin01campo03(), record.getlin01campo04(),
record.getlin01campo05(), record.getlin01campo06(),
record.getlin01campo07(), record.getlin01campo08(),
record.getlin01campo09(), record.getlin01campo10(),
record.getlin01campo11(), record.getlin01campo12(),
record.getlin01campo13(), record.getlin01campo14(),
record.getlin01campo15(), record.getlin01campo16());
} // fim do while
} // fim do try
catch (NoSuchElementException elementException) {
System.err.println("File improperly formed. ");
input.close();
System.exit(0);
}// fim do catch
catch (IllegalStateException stateException) {
System.err.println("Error reading from file. ");
System.exit(0);
} // fim do catch
} // fim do método readRecords
// fecha o arquivo e termina o aplicativo
public void closeFile() {
if (input != null)
input.close(); // fecha o arquivo
} // fim do método closeFile
} // fim da classe ReadTextFile
Segue a classse ReadTextFileTest.java ----------------------
public class ReadTextFileTest {
public static void main(String args[]) {
ReadTextFile application = new ReadTextFile();
application.openFile();
application.readRecords();
application.closeFile();
} // fim de main
} // fim da classe ReadTextFileTest
Desde já obrigado por qualquer ajuda.
[]´s
Eduardo