2017-02-15 28 views
0

Я создал метод, который принимает ответ JSON и экспортирует данные в файл Excel и CSV. Я хочу, чтобы метод принимал имя файла в качестве параметра и возвращал объект File/FileHandle из метода.Вернуть файл из java метода

Может ли кто-нибудь помочь мне в этом отношении?

Я использую ниже код для экспорта данных из creteExcel и 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); 
} 

В методе createGrid, я создаю книгу для Excel, и я Добавляя данные, к writer (writer.append).

Я хочу знать, как я могу принять имя файла как параметры для метода createExcel и createCSV и вернуть файл с тем же именем, содержащий данные?

+2

Не можете ли вы изменить подпись методов - тип и параметры возврата? – anacron

+0

Возможный дубликат [Что лучше - использование String или File в качестве типа параметра для методов, принимающих имена файлов] (http://stackoverflow.com/questions/17142469/which-is-better-using-string-or-file-as -parameter-type-for-methods-that-take-f) – liorsolomon

+0

** Для Excel **: я могу отправить fileName как параметр String, но я использую FileOutputStream для записи данных. Поэтому я могу вернуть FileOutputStream непосредственно из этого метода, или мне нужно преобразовать его в объект File. Если мне нужно конвертировать, то как? ** Для CSV **: Я пишу данные через fileWriter. Могу ли я напрямую вернуть файлWriter, или мне нужно преобразовать его в файл-объект. Если да, то как мы его преобразуем? –

ответ

1

Я хочу способ принять имя файла в качестве параметра: можно отправить String, A File объекта или InputStream - createExcel(PageModel req, PageModel resp, File yourFileObj)

И вернуть File объект из метода: подпись становится: public File createExcel()

+0

** Для Excel **: я хочу отправить fileName как параметр String, но я использую FileOutputStream для записи данных. Поэтому я могу вернуть FileOutputStream непосредственно из этого метода, или мне нужно преобразовать его в объект File. Если мне нужно конвертировать, то как? ** Для CSV **: Я пишу данные через fileWriter. Могу ли я напрямую вернуть файлWriter, или мне нужно преобразовать его в файл-объект. Если да, то как мы его преобразуем? –