Tuesday 8 August 2017

Java Runtime Getruntime Waitforexit


Esta Dica Técnica reimpressa com a permissão de java. sun Antes do JDK 5.0, a única maneira de retirar um processo e executá-lo local para o tempo de execução do usuário era usar o método exec () da classe java. lang. Runtime. JDK 5.0 adiciona uma nova maneira de executar um comando em um processo separado, através de uma classe chamada ProcessBuilder. Você pode encontrar ProcessBuilder no pacote java. lang (como Runtime e Process). Esta dica discute e compara ambas as abordagens. Se você está familiarizado com a classe Runtime, você sabe que também permite que você descubra o uso da memória e adicione um gancho de desligamento. Mas provavelmente o uso mais popular da classe antes de 5.0 foi executar um comando em um processo separado. Isso foi feito através de uma das seis versões do método exec () do Runtime: Antes de chamar o método exec (), você especifica o comando e seus argumentos, configurações de variáveis ​​de ambiente e diretório de trabalho. Todas as versões do método retornam um objeto java. lang. Process para gerenciar o processo criado. Isso permite que você obtenha o fluxo de entrada ou saída do subprocesso e do status de saída (entre outras informações disponíveis). Tem um exemplo, DoRuntime, que mostra como executar um comando com a classe Runtime original. O comando para executar é passado a partir da linha de comando. Se você executar DoRuntime no Solaris assim: você obtém saída que se parece com algo assim (o que depende do conteúdo do diretório): os usuários do Linux também podem passar no ls como o comando para obter uma listagem de diretórios. Em uma plataforma Microsoft Windows, comandos como dir são internos ao processador de comandos, de modo que o único argumento da linha de comando seria a string citada: cmd c dir (novamente, a saída dependeria do conteúdo do diretório). Conforme codificado, o comando executa no diretório de trabalho atual com suas variáveis ​​de ambiente intactas. Se você quiser executar o comando em um diretório diferente e precisar adicionar mais argumentos ao comando exec (), você altera: O segundo parâmetro na chamada para o método exec () identifica as configurações da variável de ambiente. Como o parâmetro é nulo, o subprocesso herda as configurações de ambiente do processo atual. Então, o que há de errado com essa abordagem Por que criar uma nova abordagem O problema é que a abordagem Runtime. exec não é necessariamente fácil personalizar e invocar subprocessos. A nova classe ProcessBuilder simplifica as coisas. Através de vários métodos na classe, você pode modificar facilmente as variáveis ​​de ambiente para um processo e iniciar o processo. Heres um uso simples do ProcessBuilder que duplica as funções do exemplo DoRuntime: Observe que as duas linhas a seguir no DoRuntime: foram alteradas para a seguinte linha no DoProcessBuilder: a classe ProcessBuilder possui dois construtores. Um construtor aceita uma Lista para o comando e seus argumentos. O outro construtor aceita um número variável de argumentos String. Com ProcessBuilder, você chama start () para executar o comando. Antes de iniciar a ligação (), você pode manipular como o Processo será criado. Se você quiser que o processo comece em um diretório diferente, você não passa um Arquivo como um argumento de linha de comando. Em vez disso, você define o diretório de trabalho dos construtores de processo passando o método Arquivo para o diretório (): Não há um método de tipo de setter óbvio no ProcessBuilder para configurar variáveis ​​de ambiente. Em vez disso, você obtém um Mapa das variáveis ​​através do método environment (), então você manipula o Mapa: as opções para manipular o ambiente incluem adicionar variáveis ​​de ambiente com o método put () e removê-las com o método remove (). Por exemplo: Depois que as variáveis ​​de ambiente e o diretório estiverem definidos, chamar start (): Você também pode limpar () todas as variáveis ​​do ambiente e definir explicitamente as que deseja. Com métodos como o ambiente () para adicionar e remover variáveis ​​de ambiente do espaço do processo e iniciar () para iniciar um novo processo, o ProcessBuilder deve facilitar o invocação de um subprocesso com um ambiente de processo modificado. Você pode obter o conjunto inicial de variáveis ​​de ambiente chamando o método getenv () do Sistema. Compreenda que nem todas as plataformas suportam mudanças de variáveis ​​de ambiente. Se você tentar mudar uma variável de ambiente em uma plataforma que o proíbe, a operação lançará uma UnsupportedOperationException ou uma IllegalArgumentException. Além disso, ao executar com um gerenciador de segurança, você precisará do RuntimePermission para getenv. Caso contrário, uma SecurityException será lançada. Lembre-se de não esquecer a ligação start () depois de configurar sua instância. E continue usando a classe Process para manipular os fluxos para o processo e obter seu status de saída. Uma advertência sobre os exemplos desta dica. É possível que os exemplos se paralisem se o subprocesso gerar saída suficiente para transbordar o sistema. Uma solução mais robusta requer drenagem do processo stdout e stderr em segmentos separados. Para mais informações sobre ProcessBuilder, veja a definição da classe. Copyright (c) 2004-2005 Sun Microsystems, Inc. Todos os direitos reservados. Detalhes do método getRuntime Retorna o objeto de tempo de execução associado ao aplicativo Java atual. A maioria dos métodos de classe Runtime são métodos de instância e devem ser invocados em relação ao objeto de tempo de execução atual. Retorna: o objeto Runtime associado ao aplicativo Java atual. Termina a máquina virtual Java que está executando atualmente iniciando sua seqüência de desligamento. Esse método nunca retorna normalmente. O argumento serve como um código de status por convenção, um código de status diferente de zero indica terminação anormal. A sequência de desligamento das máquinas virtuais consiste em duas fases. Na primeira fase, todos os ganchos de desligamento registrados. Se houver, são iniciados em algumas ordens não especificadas e podem ser executados simultaneamente até terminarem. Na segunda fase, todos os finalizadores não autorizados são executados se a finalização na saída tiver sido ativada. Uma vez que isso é feito, a máquina virtual pára. Se esse método for invocado depois que a máquina virtual tiver iniciado sua seqüência de desligamento, então, se os ganchos de desligamento estiverem sendo executados, esse método irá bloquear indefinidamente. Se os ganchos de desligamento já foram executados e a finalização de saída foi ativada, esse método interrompe a máquina virtual com o código de status fornecido se o status for diferente de zero, ele bloqueia indefinidamente. O método System. exit é o meio convencional e conveniente de invocar este método. AddShutdownHook Registra um novo gancho de desligamento da máquina virtual. A máquina virtual Java desliga em resposta a dois tipos de eventos: o programa sai normalmente, quando o último segmento não-daemon é encerrado ou quando o método exit (equivalente, System. exit) é invocado ou a máquina virtual é encerrada em resposta Para uma interrupção do usuário, como digitar C. Ou um evento de todo o sistema, como o logoff do usuário ou o encerramento do sistema. Um gancho de desligamento é simplesmente um segmento inicializado, mas não iniciado. Quando a máquina virtual começa a seqüência de desligamento, ele iniciará todos os ganchos de desligamento registrados em alguma ordem não especificada e deixá-los funcionar simultaneamente. Quando todos os ganchos terminaram, ele executará todos os finalizadores não autorizados se a finalização na saída tiver sido ativada. Finalmente, a máquina virtual irá parar. Observe que os tópicos do daemon continuarão a ser executados durante a seqüência de desligamento, assim como os tópicos não-daemon se o desligamento for iniciado invocando o método de saída. Uma vez que a seqüência de desligamento começou, ele pode ser interrompido apenas invocando o método de parada, que por sua vez encerra a máquina virtual. Uma vez iniciada a sequência de desligamento, é impossível registrar um novo gancho de desligamento ou cancelar o registro de um gancho previamente registrado. A tentativa de qualquer uma dessas operações causará que uma IllegalStateException seja lançada. Os ganchos de parada funcionam em um momento delicado no ciclo de vida de uma máquina virtual e, portanto, devem ser codificados defensivamente. Eles devem, em particular, ser escritos para serem seguros e evitar bloqueios na medida do possível. Eles também não devem confiar cegamente em serviços que podem ter registrado seus próprios ganchos de desligamento e, portanto, podem estar no processo de desligamento. As tentativas de usar outros serviços baseados em threads, como o tópico AWT evento-despacho, por exemplo, podem levar a deadlocks. Os ganchos de desligamento também devem terminar seu trabalho rapidamente. Quando um programa invoca saída, a expectativa é que a máquina virtual feche e saia imediatamente. Quando a máquina virtual é encerrada devido ao encerramento do sistema ou ao desligamento do sistema, o sistema operacional subjacente só pode permitir uma quantidade fixa de tempo para desligar e sair. Portanto, não é aconselhável tentar qualquer interação do usuário ou realizar uma computação de longa duração em um gancho de desligamento. Exceções não capturadas são manipuladas em ganchos de desligamento, assim como em qualquer outro segmento, invocando o método UncaughtException do objeto thread ThreadGroup. A implementação padrão deste método imprime o rastreamento de pilha de exceções para System. err e encerra o segmento, não faz com que a máquina virtual saia ou pare. Em raras circunstâncias, a máquina virtual pode abortar. Isto é, pare de correr sem desligar limpa. Isso ocorre quando a máquina virtual é encerrada externamente, por exemplo com o sinal SIGKILL no Unix ou a chamada TerminateProcess no Microsoft Windows. A máquina virtual também pode abortar se um método nativo não ocultar, por exemplo, corrompendo estruturas internas de dados ou tentando acessar a memória inexistente. Se a máquina virtual for interrompida, nenhuma garantia pode ser feita sobre se os ganchos de desligamento serão ou não executados. Parâmetros: gancho - Um objeto Thread inicializado, mas não iniciado. Lança: IllegalArgumentException - Se o gancho especificado já tiver sido registrado ou se for determinado que o gancho já está sendo executado ou já foi executado IllegalStateException - Se a máquina virtual já estiver no Processo de encerramento SecurityException - Se um administrador de segurança estiver presente e negar RuntimePermission (shutdownHooks) desde: 1.3 Consulte também: removeShutdownHook (java. lang. Thread). Parada (int). Exit (int) removeShutdownHook Desregistra um gancho de desligamento da máquina virtual previamente registrado. Parâmetros: gancho - o gancho para remover Retorna: verdadeiro se o gancho especificado já estivesse registrado e fosse com registro com sucesso, falso caso contrário. Throws: IllegalStateException - Se a máquina virtual já estiver no processo de encerramento SecurityException - Se um gerenciador de segurança estiver presente e negar RuntimePermission (shutdownHooks) Desde: 1.3 Consulte também: addShutdownHook (java. lang. Thread). Exit (int) Força a terminação da máquina virtual Java em execução atualmente. Esse método nunca retorna normalmente. Este método deve ser usado com extrema cautela. Ao contrário do método de saída, este método não faz com que os ganchos de desligamento sejam iniciados e não executa finalizadores não autorizados se a finalização na saída tiver sido ativada. Se a seqüência de desligamento já tiver sido iniciada, esse método não aguardará qualquer execução de ganchos de desligamento ou finalizadores para finalizar o trabalho. Parâmetros: status - Status de terminação. Por convenção, um código de status diferente de zero indica término anormal. Se o método exit (equivalente, System. exit) já foi invocado, esse código de status substituirá o código de status passado para esse método. Throws: SecurityException - Se um gerenciador de segurança estiver presente e seu método checkExit não permite uma saída com o status especificado Desde: 1.3 Consulte também: exit (int). AddShutdownHook (java. lang. Thread). RemoveShutdownHook (java. lang. Thread) runFinalizersOnExit Deprecated. Este método é intrinsecamente inseguro. Pode resultar em finalização de chamadas em objetos ao vivo enquanto outros tópicos manipulam esses objetos simultaneamente, resultando em um comportamento errático ou em um impasse. Habilite ou desabilite a finalização ao sair, portanto, especifica que os finalizadores de todos os objetos que tenham finalizadores que ainda não foram invocados automaticamente devem ser executados antes do tempo de execução Java. Por padrão, a finalização na saída está desabilitada. Se houver um gerenciador de segurança, seu método checkExit é chamado pela primeira vez com 0 como argumento para garantir que a saída seja permitida. Isso pode resultar em uma SecurityException. Parâmetros: valor - verdadeiro para permitir finalização na saída, falso para desativar Lances: SecurityException - se um gerenciador de segurança existir e seu método checkExit não permite a saída. Desde: JDK1.1 Consulte também: exit (int). Gc (). SecurityManager. checkExit (int) Executa o comando de seqüência especificado em um processo separado. Este é um método de conveniência. Uma invocação do formulário exec (comando) se comporta exatamente da mesma maneira que o exec de invocação (comando, nulo, nulo). Parâmetros: comando - um comando de sistema especificado. Retorna: Um novo objeto de processo para gerenciar o subprocesso. Lança: SecurityException - Se um gerenciador de segurança existe e seu método checkExec não permite a criação do subprocesso IOException - Se ocorrer um erro de IO NullPointerException - Se o comando for nulo IllegalArgumentException - Se o comando estiver vazio Veja também : Exec (String, String, File). ProcessBuilder Executa o comando de seqüência especificado em um processo separado com o ambiente especificado. Este é um método de conveniência. Uma invocação do formulário exec (comando, envp) se comporta exatamente da mesma maneira que o exec de invocação (comando, envp, null). Parâmetros: comando - um comando de sistema especificado. Envp - array of strings, cada elemento com configurações de variável de ambiente no valor do nome do formato. Ou nulo se o subprocesso deve herdar o ambiente do processo atual. Retorna: um novo objeto de Processo para gerenciar o subprocesso. Lança: SecurityException - Se um gerenciador de segurança existe e seu método checkExec não permite a criação do subprocesso IOException - Se ocorrer um erro de IO NullPointerException - Se o comando for nulo. Ou um dos elementos do envp é nulo IllegalArgumentException - Se o comando estiver vazio Veja também: exec (String, String, File). ProcessBuilder Executa o comando de seqüência especificado em um processo separado com o ambiente especificado e o diretório de trabalho. Este é um método de conveniência. Uma invocação do formulário exec (comando, envp, dir) comporta-se exatamente da mesma forma que o exec de invocação (cmdarray, envp, dir). Onde cmdarray é uma matriz de todos os tokens no comando. Mais precisamente, a seqüência de comando é dividida em tokens usando um StringTokenizer criado pela chamada novo StringTokenizer (comando) sem nenhuma modificação adicional das categorias de caracteres. Os tokens produzidos pelo tokenizer são então colocados no novo cmdarray array string. Na mesma ordem. Parâmetros: comando - um comando de sistema especificado. Envp - array of strings, cada elemento com configurações de variável de ambiente no valor do nome do formato. Ou nulo se o subprocesso deve herdar o ambiente do processo atual. Dir - o diretório de trabalho do subprocesso, ou nulo se o subprocesso deve herdar o diretório de trabalho do processo atual. Retorna: um novo objeto de Processo para gerenciar o subprocesso. Lança: SecurityException - Se um gerenciador de segurança existe e seu método checkExec não permite a criação do subprocesso IOException - Se ocorrer um erro de IO NullPointerException - Se o comando for nulo. Ou um dos elementos de envp é nulo IllegalArgumentException - Se o comando estiver vazio Desde: 1.3 Consulte também: ProcessBuilder Executa o comando e os argumentos especificados em um processo separado. Este é um método de conveniência. Uma invocação do formulário exec (cmdarray) se comporta exatamente da mesma forma que o exec de invocação (cmdarray, null, null). Parâmetros: cmdarray - array contendo o comando para chamar e seus argumentos. Retorna: um novo objeto Processo para gerenciar o subprocesso. Lança: SecurityException - Se um gerenciador de segurança existe e seu método checkExec não permite a criação do subprocesso IOException - Se ocorrer um erro de IO NullPointerException - Se cmdarray for nulo. Ou um dos elementos do cmdarray é nulo IndexOutOfBoundsException - Se cmdarray é uma matriz vazia (tem o comprimento 0) Veja também: ProcessBuilder Executa o comando e os argumentos especificados em um processo separado com o ambiente especificado. Este é um método de conveniência. Uma invocação do formulário exec (cmdarray, envp) comporta-se exatamente da mesma maneira que o exec de invocação (cmdarray, envp, null). Parâmetros: cmdarray - array contendo o comando para chamar e seus argumentos. Envp - array of strings, cada elemento com configurações de variável de ambiente no valor do nome do formato. Ou nulo se o subprocesso deve herdar o ambiente do processo atual. Retorna: um novo objeto Processo para gerenciar o subprocesso. Lança: SecurityException - Se um gerenciador de segurança existe e seu método checkExec não permite a criação do subprocesso IOException - Se ocorrer um erro de IO NullPointerException - Se cmdarray for nulo. Ou um dos elementos do cmdarray é nulo. Ou um dos elementos de envp é nulo IndexOutOfBoundsException - Se cmdarray é uma matriz vazia (tem o comprimento 0) Veja também: ProcessBuilder Executa o comando e os argumentos especificados em um processo separado com o ambiente especificado e o diretório de trabalho. Dado um conjunto de cordas cmdarray. Representando os tokens de uma linha de comando e uma série de strp envp. Representando configurações de variáveis ​​de ambiente, esse método cria um novo processo no qual executar o comando especificado. Este método verifica se cmdarray é um comando válido do sistema operacional. Os comandos que são válidos são dependentes do sistema, mas pelo menos o comando deve ser uma lista não vazia de cadeias não nulas. Se envp for nulo. O subprocesso herda as configurações de ambiente do processo atual. Um conjunto mínimo de variáveis ​​de ambiente dependentes do sistema pode ser necessário para iniciar um processo em alguns sistemas operacionais. Como resultado, o subprocesso pode herdar configurações adicionais de variáveis ​​de ambiente além das do ambiente especificado. ProcessBuilder. start () é agora a maneira preferida de iniciar um processo com um ambiente modificado. O diretório de trabalho do novo subprocesso é especificado por dir. Se dir for nulo. O subprocesso herda o atual diretório de trabalho do processo atual. Se existe um gerenciador de segurança, o método checkExec é invocado com o primeiro componente do array cmdarray como argumento. Isso pode resultar em um SecurityException sendo jogado. Iniciar um processo do sistema operacional é altamente dependente do sistema. Entre as muitas coisas que podem dar errado são: o arquivo do programa do sistema operacional não foi encontrado. O acesso ao arquivo do programa foi negado. O diretório de trabalho não existe. Nesses casos, uma exceção será lançada. A natureza exata da exceção é dependente do sistema, mas sempre será uma subclasse de IOException. Parâmetros: cmdarray - array contendo o comando para chamar e seus argumentos. Envp - array of strings, cada elemento com configurações de variável de ambiente no valor do nome do formato. Ou nulo se o subprocesso deve herdar o ambiente do processo atual. Dir - o diretório de trabalho do subprocesso, ou nulo se o subprocesso deve herdar o diretório de trabalho do processo atual. Retorna: um novo objeto Processo para gerenciar o subprocesso. Lança: SecurityException - Se um gerenciador de segurança existe e seu método checkExec não permite a criação do subprocesso IOException - Se ocorrer um erro de IO NullPointerException - Se cmdarray for nulo. Ou um dos elementos do cmdarray é nulo. Ou um dos elementos de envp é nulo IndexOutOfBoundsException - Se cmdarray for uma matriz vazia (tem comprimento 0) Desde: 1.3 Consulte também: ProcessBuilder availableProcessors Retorna o número de processadores disponíveis para a máquina virtual Java. Esse valor pode mudar durante uma invocação específica da máquina virtual. Os aplicativos que são sensíveis ao número de processadores disponíveis devem ocasionalmente pesquisar essa propriedade e ajustar seu uso de recursos adequadamente. Retorna: o número máximo de processadores disponíveis para a máquina virtual nunca menor do que um Desde: 1.4 freeMemory Retorna a quantidade de memória livre na Máquina Virtual Java. Chamar o método gc pode resultar em aumentar o valor retornado pelo freeMemory. Retorna: uma aproximação da quantidade total de memória atualmente disponível para futuros objetos alocados, medidos em bytes. TotalMemory Retorna a quantidade total de memória na máquina virtual Java. O valor retornado por este método pode variar ao longo do tempo, dependendo do ambiente do host. Observe que a quantidade de memória necessária para manter um objeto de qualquer tipo pode ser dependente da implementação. Retorna: a quantidade total de memória atualmente disponível para objetos atuais e futuros, medida em bytes. Retorna a quantidade máxima de memória que a máquina virtual Java tentará usar. Se não houver limite inerente, o valor Long. MAXVALUE será retornado. Retorna: a quantidade máxima de memória que a máquina virtual tentará usar, medida em bytes Desde: 1.4 Executa o coletor de lixo. Chamar este método sugere que a máquina virtual Java gaste esforços para a reciclagem de objetos não utilizados, a fim de tornar a memória que eles atualmente ocupam disponível para reutilização rápida. Quando o controle retorna da chamada de método, a máquina virtual fez o melhor esforço para reciclar todos os objetos descartados. O nome gc significa coletor de lixo. A máquina virtual executa este processo de reciclagem automaticamente conforme necessário, em um segmento separado, mesmo que o método gc não seja invocado explicitamente. O método System. gc () é o meio convencional e conveniente de invocar este método. RunFinalization Executa os métodos de finalização de qualquer objeto pendente de finalização. Chamar esse método sugere que a máquina virtual Java gaste esforços para executar os métodos de finalização de objetos que foram descartados, mas cujos métodos finais ainda não foram executados. Quando o controle retorna da chamada de método, a máquina virtual fez o melhor esforço para completar todas as finalizações pendentes. A máquina virtual executa o processo de finalização automaticamente conforme necessário, em um segmento separado, se o método runFinalization não for invocado explicitamente. O método System. runFinalization () é o meio convencional e conveniente de invocar este método. TraceInstructions Habilita o rastreamento de instruções das instruções. Se o argumento booleano for verdadeiro. Este método sugere que a máquina virtual Java emite informações de depuração para cada instrução na máquina virtual à medida que ela é executada. O formato desta informação e o arquivo ou outro fluxo de saída para o qual ele é emitido, depende do ambiente do host. A máquina virtual pode ignorar essa solicitação se ela não suportar esse recurso. O destino da saída de rastreamento depende do sistema. Se o argumento booleano for falso. Esse método faz com que a máquina virtual pare de executar o rastreamento detalhado das instruções que está executando. Parâmetros: on - true para habilitar o rastreamento de instruções falso para desabilitar esse recurso. TraceMethodCalls Habilita o rastreamento de chamadas de método. Se o argumento booleano for verdadeiro. Este método sugere que a máquina virtual Java emite informações de depuração para cada método na máquina virtual como é chamado. O formato desta informação e o arquivo ou outro fluxo de saída para o qual ele é emitido, depende do ambiente do host. A máquina virtual pode ignorar essa solicitação se ela não suportar esse recurso. Chamar este método com o argumento falso sugere que a máquina virtual deixa de emitir informações de depuração por chamada. Parâmetros: on - true para habilitar o rastreamento de instruções falso para desabilitar esse recurso. Carrega o nome do arquivo especificado como uma biblioteca dinâmica. O argumento do nome do arquivo deve ser um nome de caminho completo, (por exemplo, Runtime. getRuntime (). Load (homeavhliblibX11.so)). Primeiro, se houver um gerenciador de segurança, o método checkLink é chamado com o nome do arquivo como argumento. Isso pode resultar em uma exceção de segurança. Isso é semelhante ao método loadLibrary (String). Mas aceita um nome de arquivo geral como um argumento em vez de apenas um nome de biblioteca, permitindo que qualquer arquivo de código nativo seja carregado. O método System. load (String) é o meio convencional e conveniente de invocar este método. LoadLibrary Carrega a biblioteca dinâmica com o nome da biblioteca especificada. Um arquivo contendo código nativo é carregado a partir do sistema de arquivos local de um local onde os arquivos da biblioteca são convencionalmente obtidos. Os detalhes desse processo dependem da implementação. O mapeamento de um nome de biblioteca para um nome de arquivo específico é feito de maneira específica do sistema. Primeiro, se houver um gerenciador de segurança, o método checkLink é chamado com o libname como argumento. Isso pode resultar em uma exceção de segurança. O método System. loadLibrary (String) é o meio convencional e conveniente de invocar este método. Se métodos nativos devem ser usados ​​na implementação de uma classe, uma estratégia padrão é colocar o código nativo em um arquivo de biblioteca (chamar LibFile) e, em seguida, colocar um inicializador estático: dentro da declaração de classe. Quando a classe é carregada e inicializada, a implementação de código nativo necessária para os métodos nativos também será carregada. Se esse método for chamado mais de uma vez com o mesmo nome da biblioteca, a segunda e as chamadas subseqüentes serão ignoradas. Parâmetros: libname - o nome da biblioteca. Lança: SecurityException - se existe um gerenciador de segurança e seu método checkLink não permite o carregamento da biblioteca dinâmica especificada InsatisfiedLinkError - se a biblioteca não existir. NullPointerException - se libname for nulo Veja também: SecurityException. SecurityManager. checkLink (java. lang. String) getLocalizedInputStream Deprecated. A partir do JDK 1.1, a maneira preferida de traduzir um fluxo de bytes na codificação local para um fluxo de caracteres no Unicode é através das classes InputStreamReader e BufferedReader. Cria uma versão localizada de um fluxo de entrada. Este método leva um InputStream e retorna um InputStream equivalente ao argumento em todos os aspectos, exceto que ele está localizado: como caracteres no conjunto de caracteres locais são lidos a partir do fluxo, eles são convertidos automaticamente do conjunto de caracteres local para Unicode. Se o argumento já é um fluxo localizado, ele pode ser retornado como resultado. GetLocalizedOutputStream Deprecated. A partir do JDK 1.1, a maneira preferida de traduzir um fluxo de caracteres Unicode para um fluxo de bytes na codificação local é através do OutputStreamWriter. BufferedWriter. E as classes PrintWriter. Cria uma versão localizada de um fluxo de saída. Este método leva um OutputStream e retorna um OutputStream equivalente ao argumento em todos os aspectos, exceto que ele está localizado: como caracteres Unicode são gravados no fluxo, eles são convertidos automaticamente para o conjunto de caracteres local. Se o argumento já é um fluxo localizado, ele pode ser retornado como resultado. Enviar um bug ou recurso Para obter mais informações sobre API e documentação do desenvolvedor, consulte Documentação do Java SE. Essa documentação contém descrições detalhadas, desenvolvidas por desenvolvedores, com visões gerais conceituais, definições de termos, soluções alternativas e exemplos de código de trabalho. Copyright x00a9 1993, 2016, Oracle e suas afiliadas. Todos os direitos reservados. O uso está sujeito aos termos de licença. Veja também a política de redistribuição de documentação . Scripting nesta página rastreia o tráfego da página web, mas não altera o conteúdo de forma alguma.

No comments:

Post a Comment