Eu gostaria de saber como posso fazer uma String Fixa para poder gravar em um arquivo.
tipo assim eu tenho uma string composta de nome/endereço/telefone
tudo serial. Tipo nome vai da posição 1 até 30, endereço da 31 a 60, e telefone de 61 a 70.
o problema é q se eu coloco tipo
andrerua03casa05999999999
a string grava nas posições erradas como posso fazer ela gravar como no layout? :?:
Mas isso só pode ser feito s3e o tamanho da string for sempre o mesmo, caso contrário , vc pode usar um separador , então vc pode usar um BufferStyring ou coisa assim para separa quando tiver um separador padrão , como um ponto , assim fica mais dinâmico o código, doque substrting
M
MaycrofPJ
eu tenho que respeitar um certo layout para esse string pq tenho q gravar um arquivo q vai ser lido… lá não tem separador… o que eu tinha q fazer era grava nas posiçoes certas… tipo nome começa na 0 e termina na 30 sempre assim…
poxa mais como eu vou fazer para sempre saber o tamanho desse valor adicional… eu quero gravar um arquivo apartir desse string… e tem q ter esse layout
V
vinciPJ
Trabalhe com um array de caracteres.
M
MaycrofPJ
como assim? :?:
V
vinciPJ
Suponha que seu “layout” seja:
[ Codigo (10 caracteres) | Nome (40 caracteres) ]
vc pode gravar no arquivo com um tamanho fixo e depois ler com o mesmo tamanho (exatamente o q vc quer )
um ex de como se grava/le:
StringBuffersb;RandomAccessFilefile=newRandomAccessFile(newFile("arquivo.dat"),"rw");// r eh para leitura e w para gravarfile.seek(72);// move o ponteiro do arquivo para a posicao 32// vc pode tb fazer isso em um for, basta multiplicar a variavel sentinela (geralemnte i) pelo numero fixo dos caracteressb=newStringBuffer("sei lah, aqui vc poe o q vai gravar com tamanho fixo ;)");sb.setLength(72);// essa linha eh importante, pois se a string contiver menos caracteres q o tamanho fixo, dai vai ser preenchida com espacos em branco, e caso ela "estoure" o tamanho, os ultimos caracteres serao "jogados fora"file.writeChars(sb.toString());// pra ler:chattmp[]=newchar[72];for(inti=0;i<72;i++){tmp[i]=file.readChar();}Stringresult=newString(tmp);System.out.println(result);