Java的文件导入导出实现

一. 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. 使用fileUpload取得文件的fileByte

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<List<String>> results = new ArrayList<List<String>>();
BufferedReader reader = new BufferedReader(new FileReader(filePath));
CSVBufferReader inReader = new CSVBufferedReader(reader);
List<String> tmpRow = null;
CSVLineIterator csvLine = inReader.readCSVLine();
while(csvLine != null){
    tmpRow = new ArrayList<String>();
    while(csvLine.hasNext() == true){
        tmpRow.add(csvLine.next());
    }
    resut.add(tmpRow);
    csvLine = inReader.readCSVLine();
}
return result;


相关推荐
Excel源代码,ExcelCreate.java导出类和ExcelRead.java导入类 用到poi底层架包有poi-3.6-20091214.jar,poi-contrib-3.6-20091214.jar poi-scratchpad-3.6-20091214.jar ExcelRead.java文件导入类 Public void importExcel(String file)读取文件方法一,file指明要导入文件路径。 public void importExcel (File file) 读取文件方法二,参数是file文件。 public void importExcel (InputStream filestream)读取文件方法三,参数是文件流。 public List readRow (int sheetNumber,int rows), 读取第几张工作表第几行数据返回一个list. (工作表,起始行) ExcelCreate.java文件导出类 public ExcelCreate (),构造函数。 public void createSheet(String sheetName),创建工作表(工作表名称)。可创建多个工作表。 public static void setDefaultCellHighWidthInRange(short[] eachCellWidth, int high) 设置各列单元格宽度,eachCellWidth[]指定列号,high设置宽度。 public void addHeader (list rowvalues, Boolean isFilter)导入表头,list是保存表头集合,isFilter是否过滤。 public void addRow (List rowvalues),数据导入Excel方法, public void insertRow (List rowvalues,Int rowIndex),数据导入Excel方法,给指定行后追加一条数据。 public void delRow(int row) 删除指定行。 Public void setSelect (int row,int cells,List cellvalue)给指定列设置下拉列表,row是行号,cells 是列号,list是下拉列表数据。 public void exportExcel (String file)导出文件路径方法一,file是要导出数据文件路径。 public void exportExcel (File file) 导出文件路径方法二,file是要导出文件。 public void exportExcel (OutputStream outputstream) 导出文件路径方法三,outputstream是输出流。
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页