Como escrever um programa orientado para o disco em Java
Java lhe dá a capacidade de escrever um programa orientado para o disco. Na verdade, às vezes é mais fácil de usar alguns dos seu código pré-existente e adicionar um pouco de edição simples. Veja como:
Adicione as seguintes declarações de importação para o início do seu código:
importação java.io.File-import java.io.FileNotFoundException-import java.io.PrintStream-
Adicione o seguinte cláusula throws ao cabeçalho do método:
lança FileNotFoundException
Na chamada para new Scanner, substituir System.in com uma chamada para novo arquivo do seguinte modo:
aVariableName Scanner = new Scanner (new File ( "inputfilename"))
Crie um PrintStream para escrever a saída para um arquivo em disco:
PrintStream anotherVariableName = new PrintStream ( "OutputFileName") -
Use o Scanner nome da variável em chamadas para nextInt,nextLine, e assim por diante.
Por exemplo, você mudaria
UnitPrice = keyboard.nextDouble () - Quantidade = keyboard.nextInt () -
para
UnitPrice = diskScanner.nextDouble () - Quantidade = diskScanner.nextInt () -
Use o PrintStream nome da variável em chamadas para impressão e println.
Por exemplo, você mudaria
System.out.println (total) -
para
diskWriter.println (total) -
Use o Scanner nome da variável na chamada para fechar.
Por exemplo, você mudaria
keyboard.close () -
para
diskScanner.close () -
Use o PrintStream nome da variável em uma chamada para fechar.
Por exemplo, você poderia adicionar
diskWriter.close () -
no final de a Principal método.
Leitura de um arquivo
Todos Scanner métodos podem ler a partir de arquivos de disco existentes. Por exemplo, para ler uma palavra a partir de um arquivo chamado meu discurso, usar o código do seguinte tipo:
Scanner diskScanner = new Scanner (new File ( "mySpeech")) - corda oneword = diskScanner.next () -
Para ler um personagem de um arquivo chamado letters.dat e, em seguida, exibir o personagem na tela, você pode fazer algo como isto:
Scanner diskScanner = new Scanner (new File ( "letters.dat")) - System.out.println (diskScanner.findWithinHorizon (, 0) .charAt (0) ".") -
O arquivo que você precisa para ler é nomeado meu discurso, não mySpeech.txt ou mySpeech.doc. Qualquer coisa que você colocar após o ponto é chamado de extensão de arquivo, e por um arquivo completo de números e outros dados, a extensão do arquivo é opcional.
Claro, um programa Java deve ser chamado alguma coisa.Java, mas um ficheiro de dados pode ser chamado mySpeech.txt, mySpeech.reallymine.allmine, ou apenas meu discurso. Enquanto o nome em seu novo arquivo chamada é o mesmo que o nome do arquivo no disco rígido do seu computador, tudo está bem.
Escrevendo para um arquivo
o impressão e println métodos podem gravar arquivos de disco. aqui estão alguns exemplos:
Durante uma execução do código na Listagem 13-2, a variável total armazena o número 99,75. Para depositar 99,75 para o cookedData.txt arquivo, você executar
diskWriter.println (total) -
este println chamada grava em um arquivo de disco por causa da seguinte linha na Listagem 13-2:
PrintStream diskWriter = new PrintStream ( "cookedData.txt") -
Em outra versão do programa, você pode decidir não usar um total variável. Para escrever 99,75 à cookedData.txt arquivo, você pode chamar
diskWriter.println (UnitPrice * quantidade) -
Mostrar Está bem na tela, você pode fazer a chamada seguinte método:
System.out.print ( "OK") -
Escrever Está bem para um arquivo chamado approval.txt, você pode usar o seguinte código:
PrintStream diskWriter = new PrintStream ( "approval.txt") - diskWriter.print ( "OK") -
Você pode decidir a escrever Está bem como dois caracteres separados. Para escrever na tela, você pode fazer as seguintes chamadas:
System.out.print ( 'O') - System.out.print ( 'K') -
E para escrever Está bem ao approval.txt arquivo, você pode usar o seguinte código:
PrintStream diskWriter = new PrintStream ( "approval.txt") - diskWriter.print ( 'O') - diskWriter.print ( 'K') -
Como suas contrapartes para System.out, o disco-writing impressão e println métodos diferem nos seus comportamentos de fim-de-linha. Por exemplo, você deseja exibir o seguinte texto na tela:
Hankees Socks7 3
Para fazer isso, você pode fazer as seguintes chamadas de método:
System.out.print ( "Hankees") -System.out.println ( "meias") - System.out.print (7) -System.out.print ( "") -System.out.println (3) -
Para plantar o mesmo texto em um arquivo chamado scores.dat, você pode usar o seguinte código:
PrintStream diskWriter = new PrintStream ( "scores.dat") - diskWriter.print ( "Hankees") -diskWriter.println ( "meias") - diskWriter.print (7) -diskWriter.print ( "") -diskWriter.println ( 3) -