Java FileOutputStream

Boa tarde,estou com um problema no FileOutputStream. Não estou conseguindo salvar o jpg em uma pasta. Alguem pode me dar uma ajuda? Segue o codigo

public class UploadArquivo {

    private String diretorio;
    private String caminho;
    private byte[] arquivo;
    private String nome;

    public UploadArquivo() {
    }

    public String getNome() {
        return nome;
    }
    
    
    public String getRealPath() {
        ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();
        HttpServletResponse response = (HttpServletResponse) externalContext.getResponse();

        FacesContext aFacesContext = FacesContext.getCurrentInstance();
        ServletContext context = (ServletContext) aFacesContext.getExternalContext().getContext();

        return context.getRealPath("/");
    }

    public void fileUpload(FileUploadEvent event, String type, String diretorio) {
        try {
            this.nome = new java.util.Date().getTime() + type;
            this.caminho = getRealPath() + diretorio + getNome();
            this.arquivo = event.getFile().getContents();

            File file = new File(getRealPath() + diretorio);
            file.mkdirs();

        } catch (Exception ex) {
            System.out.println("Erro no upload do arquivo" + ex);
        }
    }


    public void gravar() {

        try {
            
            FileOutputStream fos;
            fos = new FileOutputStream(this.caminho);
            fos.write(this.arquivo);
            fos.flush();
            fos.close();

        } catch (Exception ex) {
            System.out.println(ex);
        }
    }
}

Dá algum erro? E onde você chama o método gravar()? Está mesmo sendo chamado após o método fileUpload?

Não dar nenhum erro, ele simplesmente nao envia o arquivo para a pasta.Mais salva normal no banco de dados.

E onde você chama o método gravar()? Está mesmo sendo chamado após o método fileUpload?

O Bean:

public void salvar() {
        dao.cadastrar(notaFiscal);
        this.arquivo.gravar();

        this.notaFiscal = new NotaFiscal();
        this.arquivo = new UploadArquivo();
    }

    public void uploadAction(FileUploadEvent event) {
        this.arquivo.fileUpload(event, ".pdf", "/notaFiscal/");
        this.notaFiscal.setPdf(this.arquivo.getNome());
    }

a View:

 <h:form enctype="multipart/form-data">
            Foto: <p:fileUpload id="upload" fileUploadListener="#{fileUploadBean.uploadAction}" label="procurar" auto="true"/>
            <h:commandButton value="Enviar" action="#{fileUploadBean.salvar}" />                         
  </h:form>        

[quote=CamilaLopes]Boa tarde,estou com um problema no FileOutputStream. Não estou conseguindo salvar o jpg em uma pasta. Alguem pode me dar uma ajuda? Segue o codigo

[code]
public void gravar() {

    try {
        
        FileOutputStream fos;
        fos = new FileOutputStream(this.caminho);
        fos.write(this.arquivo);
        fos.flush();
        fos.close();

    } catch (Exception ex) {
        System.out.println(ex);
    }
}

}
[/code][/quote]

O parâmetro que é passado no new FileOutputStream(parametro); é o nome do arquivo, não o caminho.
De acordo com o que tem aqui: http://docs.oracle.com/javase/7/docs/api/java/io/FileOutputStream.html