Asspose.Tex's Input Interface | Java
Si prega di fare riferimento a Aspose.TeX per java riferimento API per definizioni formali di implementazione I/O.
Il concetto della directory di input
Poiché i primitivi I/O della lingua tex possono solo affrontare i nomi dei file, Aspose.TeX per Java definisce una directory come una mappatura tra nomi e numeri di dati. I BUSI DEI DATI dovrebbero essere file, flussi, array o qualsiasi altra cosa. L’API ci consente di specificare separatamente le directory di lavoro input e output. Fornisce l’interfaccia generale IinputworkingDirectory, che l’utente può implementare per i propri scopi. Fornisce inoltre le proprie implementazioni, che saranno discusse di seguito. L’interfaccia definisce il metodo getFile(), che restituisce il flusso di dati e determina il nome completo del file, pur assumendo un po ‘, ipoteticamente diverso, il nome come il primo argomento, che, in effetti, è il tasto di mappatura.
Ottenere l’input del file dal file system disco
Ecco come lo faremmo:
1// Create conversion options instance.
2...
3// Specify a file system working directory for the input.
4options.setInputWorkingDirectory(new InputFileSystemDirectory(Utils.getInputDirectory()));
Questo caso d’uso è abbastanza semplice, quindi non ci soffermeremo da molto tempo.
Ottenere l’input di file da un archivio con zip
Possiamo anche mettere i file di input in un archivio ZIP e considerarlo una directory di input. In questo caso, dovremmo procedere come segue:
1// Open the stream for the ZIP archive that will serve as the input working directory.
2final Stream inZipStream = File.Open(Path.Combine(RunExamples.InputDirectory, "zip-in.zip"), FileMode.Open))
3{
4 // Create conversion options instance.
5 ...
6 // Specify a ZIP archive working directory for the input. You can also specify a path inside the archive.
7 options.setInputWorkingDirectory(new InputZipDirectory(inZipStream, "in"));
8} finally {
9 if (inZipStream != null)
10 inZipStream.close();
11}
Innanzitutto, creiamo il flusso contenente il file zip. Quindi, dopo aver creato le opzioni di conversione, impostiamo l’opzione InputWorkingDirectory per essere un’istanza della classe InputZipDirectory. Il secondo argomento del costruttore è il percorso di base all’interno dell’archivio. Se vogliamo che l’intero archivio sia una directory di input, dovremmo passare la stringa vuota.
Il concetto del terminale di input
Ora ricordiamo che c’è anche l’input del terminale. Per quanto riguarda questo, Aspose.TeX per java definisce l’interfaccia generale iinputterminal con due metodi. Uno di questi restituisce un’istanza bufferedReader. Un altro metodo restituisce un inputstream come flusso sottostante. Le implementazioni fornite dell’interfaccia sono discusse di seguito.
Ottenere l’input del terminale dalla console
Per fare ciò, dobbiamo impostare l’opzione Terminalin per essere un’istanza della classe InputConsoleterminal.
1// Create conversion options instance.
2...
3// Specify the console as the input terminal.
4options.setTerminalIn(new InputConsoleTerminal()); // Default value. Arbitrary assignment.
Ma, per dirti la verità, questo è il valore predefinito dell’opzione, quindi non è necessario specificarla. Per questo fatto, e fintanto che non ci sono altre implementazioni, questa sezione ha solo scopi dimostrativi.
Teoricamente, se abbiamo un file TEX interattivo (o script) con un comportamento prevedibile, potremmo voler implementare una versione del terminale di input che contiene uno script complementare per rispondere alle richieste del motore TEX. Prova la tua mano quando hai tempo!