quarta-feira, 26 de julho de 2023

Trabalhando com Arquivos (File) e Array de Bytes no Java

     As vezes precisamos transformar um arquivo em array de bytes e visse e versa seja para guardar o arquivo em banco ou tranferir na rede, e aqui seguem duas funções para fazer esse De-Para:


        public byte[] convertFileToByte(File file){
FileInputStream fileInputStream=null;
byte[] bFile = new byte[(int) file.length()];
try {
    //convert file into array of bytes
fileInputStream = new FileInputStream(file);
fileInputStream.read(bFile);
fileInputStream.close();
   
}catch(Exception e){
e.printStackTrace();
}
return bFile;
}

public File convertByteToFile(byte[] bYtes){
File file = new File("file");
BufferedOutputStream bos;
try {
bos = new BufferedOutputStream(new FileOutputStream(file));
bos.write(bYtes); 
bos.close(); 
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();

return file;
}

quarta-feira, 19 de julho de 2023

Aplicando Máscara CNPJ em um campo no SQL Server

 

Muitas vezes os campos como CNPJ e CPF são guardados no banco de dados sem a formatação e pode acontecer de precisarmos pegar eles já formatados.

 

Bom, segue abaixo um exemplo de função que formata no padrão CNPJ, e que também serve de base para formatar um CPF.

 

DECLARE @cnpj CHAR(14) = '3477929600012'; -- Insira o CNPJ aqui

 

SELECT

STUFF(STUFF(STUFF(STUFF(

RIGHT('00000000000000' + @cnpj, 14), -- Completa com zeros à esquerda

3, 0, '.'), 7, 0, '.'), 11, 0, '/'), 16, 0, '-') AS CNPJformatado;

 

Primeiro são acrescentados 14 zeros a esquerda e então a função RIGHT é usada para pegar os últimos 14 dígitos do CNPJ, sendo assim, não importa quantos números faltem, eles serão preenchidos com zeros.

 

A função STUFF é aplicada em posições específicas para inserir os pontos, a barra e o traço usados na formatação do CNPJ.

 

Pra este artigo é só, espero que ajude.

quarta-feira, 12 de julho de 2023

Juntando Strings JSON

     Nesse artigo vou mostrar um método que junta até 3 JSONs em um só, sendo que qualquer um deles pode vir vazio ou nulo. Esse método foi usado para uma integração onde recebia até 3 respostas e precisava tratá-las como uma na aplicação. 


private String montaJson(String json, String json2, String json3) {

if(json != null && !json.isEmpty()){

    json = json.trim().substring(0, json.lastIndexOf("]"))+",";

    if(json2 != null && !json2.isEmpty()){

json += json2.trim().substring(1, json2.lastIndexOf("]"))+",";

if(json3 != null && !json3.isEmpty()){

json += json3.trim().substring(1);

} else {

    json = json.trim().substring(0, json.lastIndexOf(","))+"]";

}

    } else if(json3 != null && !json3.isEmpty()) {

json += json3.trim().substring(1, json3.lastIndexOf("]"));

    } else {

        json = json.trim().substring(0, json.lastIndexOf(","))+"]";

    }

} else {

if(json2 != null && !json2.isEmpty()){

    json = json2.trim().substring(0, json2.lastIndexOf("]"))+",";

    if(json3 != null && !json3.isEmpty()) {

        json += json3.trim().substring(1);

    } else {

              json = json.trim().substring(0, json.lastIndexOf(","))+"]";

    }

} else if(json3 != null && !json3.isEmpty()){

    json = json3.trim();

}

}

return json;

}