Javaのファイルインポートエクスポート実装

2062 ワード

一.Javaファイルエクスポート:1.ファイル内容をDTOに書き込む2.FacesContextで画面のInstanceを取得する(Importが必要):
FacesContext faceContext = FacesContext.getCurrentInstance();

3.Response取得:
HttpServletResponse response = (HttpServletResponse)facesContext.getExternalContext().getResponse();

4.ダウンロード処理
4.1 pathとfileNameでダウンロードファイルを取得する:
DownloadResponse.writeOther(response, downloadfilepath, downloadfilename);

4.2ファイルの読み込み:
BufferedInputStream inputStream = new BufferedInputStream(new FileInputStream(downloadFile));
OutputStream outputStream = response.getOutputStream();
int size = inputStream.available();
while(size > 0){
    byte[] bytes = new byte[size];
    inputStream.read(bytes);
    outputStream.write(bytes);
    size = inputStream.available();
}

5.終了後にJSFに通知する.
facesContext.responseComplete();

二.Javaファイルのインポート:
1.file Uploadでファイルを取得するfile Byte
2.DTOにファイル内容を書き込む:
String strData = new String(inDTO.getUpload.file_byte(), Charset.forName(SwCharset.TXT_Default.getCharsetName);

3.一時ファイルを作成し、パスを取得する:
File tempFile = TempFile.create(ID, PageID, strData, SwCharset.UTF8);
//   NAS_ID:
String nasID = nasManager.create(ID, PageID, tempFile.getPath(), NASFileType.CSV.getFileType(), "INSERT.csv", "  ");
//   NAS    :
String nasFilePath = nasManager.getNasFileInfo(nasID).getAbsolutePath();

4.BufferedReaderでファイルを読み込みます.
List> results = new ArrayList>();
BufferedReader reader = new BufferedReader(new FileReader(filePath));
CSVBufferReader inReader = new CSVBufferedReader(reader);
List tmpRow = null;
CSVLineIterator csvLine = inReader.readCSVLine();
while(csvLine != null){
    tmpRow = new ArrayList();
    while(csvLine.hasNext() == true){
        tmpRow.add(csvLine.next());
    }
    resut.add(tmpRow);
    csvLine = inReader.readCSVLine();
}
return result;