2017-02-15 2 views
0

J'ai créé une méthode qui accepte la réponse JSON et exporte les données dans un fichier Excel et CSV. Je veux que la méthode accepte le nom de fichier en tant que paramètre et renvoie l'objet File/FileHandle de la méthode.Retour d'un fichier à partir de la méthode java

Quelqu'un peut-il m'aider à ce sujet?

J'utilise le code ci-dessous pour exporter les données de creteExcel et createCSV.

public void createExcel(PageModel pageModelRequest,PageModel pageModelResponse){ 
     FileOutputStream outputStream=new FileOutputStream(new File("GridData.xlsx")); 
     createGrid(pageModelResponse, sheet, workbook); 
     workbook.write(outputStream); 
     System.out.println("Excel Written");  
     outputStream.close(); 
     workbook.close(); 
} 

public void createCSV(PageModel pageModelRequest,PageModel pageModelResponse){ 
     String csvFile = "/Users/abhinak4/Desktop/GridData.csv";   
     FileWriter writer = new FileWriter(csvFile); 
     createGrid(pageModelRequest, pageModelResponse, writer); 
} 

Dans la méthode createGrid, je suis en train de créer le classeur Excel, et je les données AJOUT DE, au writer (writer.append).

Je veux savoir, comment puis-je accepter le nom de fichier comme paramètres pour createExcel et createCSV méthode, et renvoyer le fichier avec le même nom contenant les données?

+2

Vous ne pouvez pas changer la signature des méthodes - type de retour et paramètres? – anacron

+0

Copie possible de [Quel est le meilleur - en utilisant la chaîne ou le fichier comme type de paramètre pour les méthodes qui prennent les noms de fichiers] (http://stackoverflow.com/questions/17142469/which-is-better-using-string-or-file-as -parameter-type-for-methods-that-take-f) – liorsolomon

+0

** Pour Excel **: Je peux envoyer le paramètre fileName as String, mais j'utilise FileOutputStream pour écrire les données. Je peux donc renvoyer FileOutputStream directement à partir de cette méthode ou dois-je le convertir en objet File. Si j'ai besoin de convertir, alors comment? ** Pour CSV **: J'écris des données via fileWriter. Puis-je retourner directement le fichierWriter, ou dois-je le convertir en objet fichier. Si oui, comment pouvons-nous le convertir? –

Répondre

1

Je veux la méthode pour accepter le nom de fichier comme paramètre: Vous pouvez envoyer un String, A File Objet ou InputStream - createExcel(PageModel req, PageModel resp, File yourFileObj)

Et retourner l'objet File de la méthode: La signature devient: public File createExcel()

+0

** Pour Excel **: Je souhaite envoyer le paramètre fileName as String, mais j'utilise FileOutputStream pour écrire les données. Je peux donc renvoyer FileOutputStream directement à partir de cette méthode ou dois-je le convertir en objet File. Si j'ai besoin de convertir, alors comment? ** Pour CSV **: J'écris des données via fileWriter. Puis-je retourner directement le fichierWriter, ou dois-je le convertir en objet fichier. Si oui, comment pouvons-nous le convertir? –