java下载本地文件代码 java下载本地文件代码是什么

帮我看看这段java下载代码,文件名为中文时,报错,无法找到指定文件

代码一共6句,前4句没问题,运行下载是ok的,

成都地区优秀IDC服务器托管提供商(创新互联).为客户提供专业的服务器机柜租赁,四川各地服务器托管,服务器机柜租赁、多线服务器托管.托管咨询专线:18982081108

最后一句梁友态有点不明白,为什么用BufferedInputStream?这个是读文件的,不知道你后面是如何写的,难道还要把文件读到内存?在向客户端发送出去告孝??这样的话下载GB级文件内存溢出。

BufferedInputStream和BufferedOutputStream 用橡源了之后,一定要flush(),这样也许会解决你的中文下载报错。

我直接用BufferedOutputStream 下载文件成功,前面是用你的,后面如下:

InputStream in = new FileInputStream(file);// 将文件装换成缓冲流

OutputStream out = response.getOutputStream(); // 获取response中得下载对象

BufferedOutputStream bufo = new BufferedOutputStream(out); // 对象转换成字符流

int length = 0; // 读取本地文时,记录本次文件读取内容大小

byte[] buffer = new byte[524288]; // 每次推送 512KB

while ((length = in.read(buffer)) != -1) // 读取本地文件,并在存放在buffer 数组

{

bufo.write(buffer, 0, length);// 预备向客户端推送

bufo.flush();// 清空缓存,并立即推送

}

in.close();

out.close();

bufo.close();

不建议写 response.setContentLength(int); 大并发时,这个容易出问题。

Java中文件下载该怎么写代码求高手指导

if (upfile.exists()) {

bytes = FileUtils.readFileToByteArray(upfile);

response.setContentType("application/x-download");

String agent = request.getHeader("USER-AGENT");//用户代理

// 防穗伏缓止中文厅族文件名乱码

if (null != agent -1 != agent.indexOf("MSIE")) {

String codedfilename = StringUtils.replace(URLEncoder.encode(fileName, "UTF-8"), "+", "%20");

response.setHeader("Content-Disposition"猜模, "attachment;filename=" + codedfilename);

} else if (null != agent -1 != agent.indexOf("Mozilla")) {

String codedfilename = MimeUtility.encodeText(fileName, "UTF-8", "B");

response.setHeader("Content-Disposition", "attachment;filename=" + codedfilename);

} else {

response.setHeader("Content-Disposition", "attachment;filename=" + fileName);

}

response.setContentLength(bytes.length);

response.getOutputStream().write(bytes);

}

java代码怎样将oracle数据库中数据下载本地,为.txt文件或者.excel文件。

第一稿谈个类:

package totabel.action;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JOptionPane;

import topdf.TableToPdf;

import totabel.view.TabelData;

import totabel.xls.ExcelDemo;

public class TableAction implements ActionListener {

TabelData data;

public TableAction(TabelData data) {

this.data = data;

}

public void actionPerformed(ActionEvent e) {

String str = e.getActionCommand();

if ("枣敬雀添加".equals(str)) {

data.addData();

} else if ("导出到Excel".equals(str)) {

ExcelDemo demo = new ExcelDemo();

demo.method(data);

} else if ("删除".equals(str)) {

if (data.getRow() != -1) {

data.delRow();

} else {

JOptionPane.showMessageDialog(null, "请选择要删除的行!");

}

}else if("从Excel导入"凳早.equals(str)){

data.getXlsInfo();

}else if("从Excel导入到数据库".equals(str)){

data.toDb();

}else if("从table导出到pdf".equals(str)){

TableToPdf pdf=new TableToPdf();

pdf.newPage(data);

}else if("计算学分".equals(str)){

data.getXlsInfoToCredit();

}

}

}

第二个类:数据库连接

package totabel.db;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

public class JdbcConnection {

private static JdbcConnection con;

public static JdbcConnection getCon() {

if (con == null) {

con = new JdbcConnection();

}

return con;

}

public Connection getConnection() {

Connection connection=null;

try {

Class.forName("oracle.jdbc.OracleDriver");

String url = "jdbc:oracle:thin:@127.0.0.1:1521:oracle";

String user = "scott";

String password = "tiger";

connection = DriverManager.getConnection(url, user,

password);

} catch (ClassNotFoundException e) {

e.printStackTrace();

} catch (SQLException e) {

e.printStackTrace();

}

return connection;

}

// public static void main(String[] args) {

// JdbcConnection connection=new JdbcConnection();

// connection.getConnection("asd", "99");

// }

}

第三个类:主类(入口)

package totabel.db;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

public class JdbcConnection {

private static JdbcConnection con;

public static JdbcConnection getCon() {

if (con == null) {

con = new JdbcConnection();

}

return con;

}

public Connection getConnection() {

Connection connection=null;

try {

Class.forName("oracle.jdbc.OracleDriver");

String url = "jdbc:oracle:thin:@127.0.0.1:1521:oracle";

String user = "scott";

String password = "tiger";

connection = DriverManager.getConnection(url, user,

password);

} catch (ClassNotFoundException e) {

e.printStackTrace();

} catch (SQLException e) {

e.printStackTrace();

}

return connection;

}

// public static void main(String[] args) {

// JdbcConnection connection=new JdbcConnection();

// connection.getConnection("asd", "99");

// }

}

第四个类:

package totabel.xls;

import java.io.File;

import java.io.IOException;

import java.util.Vector;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

import javax.swing.JOptionPane;

import totabel.view.TabelData;

import jxl.Cell;

import jxl.Sheet;

import jxl.Workbook;

import jxl.read.biff.BiffException;

import jxl.write.Label;

import jxl.write.WritableSheet;

import jxl.write.WritableWorkbook;

import jxl.write.WriteException;

import jxl.write.biff.RowsExceededException;

public class ExcelDemo {

/**

*

* @param args

*/

private Vector title = new Vector();

private Vector[] array;

// public static void main(String[] args) {

// ExcelDemo demo = new ExcelDemo();

// demo.getXlsInfo();

//

// }

public void method(TabelData table) {

int row = table.getRowSize();

int column = table.getColumnSize();

WritableWorkbook book = null;

Vector title = table.setTitle();

Object[] str = title.toArray();

try {

book = Workbook.createWorkbook(new File("test.xls"));

WritableSheet sheet = book.createSheet("成绩表", 0);

for (int i = 0; i str.length; i++) {

sheet.addCell(new Label(i, 0, (String) str[i]));

}

for (int i = 1; i row + 1; i++) {

for (int j = 1; j column + 1; j++) {

sheet.addCell(new Label(j - 1, i, table.getTableInfo(i - 1,

j - 1)));

}

}

book.write();

JOptionPane.showMessageDialog(null, "导出完成!");

} catch (IOException e) {

e.printStackTrace();

} catch (RowsExceededException e) {

e.printStackTrace();

} catch (WriteException e) {

e.printStackTrace();

} finally {

try {

book.close();

} catch (WriteException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

}

/**

* 输出Excel的数据到表单

*

* @return

*/

public Vector getXlsInfo() {

Vector v = new Vector();

jxl.Workbook rwb = null;

int index = 0;

try {

rwb = jxl.Workbook.getWorkbook(new File("test.xls"));

Sheet[] sheet = rwb.getSheets();

for (int i = 0; i sheet.length; i++) {

int rs = sheet[i].getRows();

array = new Vector[rs - 1];

for (int j = 1; j rs; j++) {

Cell[] cell = sheet[i].getRow(j);

Vector info = new Vector();

for (int k = 0; k cell.length; k++) {

info.add(cell[k].getContents());

}

array[index] = info;

index++;

v.add(info);

}

Cell[] titleCell = sheet[i].getRow(0);

for (int j = 0; j titleCell.length; j++) {

title.add(titleCell[j].getContents());

}

}

} catch (BiffException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

} finally {

rwb.close();

}

return v;

}

public Vector getXlsInfoToCredit() {

Vector v = new Vector();

jxl.Workbook rwb = null;

try {

rwb = jxl.Workbook.getWorkbook(new File("d:/test/信科0821(南迁).xls"));

Sheet[] sheet = rwb.getSheets();

for (int i = 0; i sheet.length; i++) {

int rs = sheet[i].getRows();

array = new Vector[rs - 1];

for (int j = 1; j rs; j++) {

Cell[] cell = sheet[i].getRow(j);

Vector info = new Vector();

for (int k = 0; k cell.length; k++) {

// if(){

Pattern p = Pattern点抗 pile("[0-9]{1,}");

Matcher m = p.matcher(cell[k].getContents());

if (m.matches()) {

int score = Integer.valueOf(cell[k].getContents());

float result = getScore(score);

info.add(result);

} else {

info.add(cell[k].getContents());

}

}

v.add(info);

}

Cell[] titleCell = sheet[i].getRow(0);

for (int j = 0; j titleCell.length; j++) {

title.add(titleCell[j].getContents());

}

}

} catch (BiffException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

} finally {

rwb.close();

}

return v;

}

public float getScore(int n) {

float score = n;

if (n 60) {

score = 0;

return score;

} else {

if (n = 60 n = 63) {

score = (float) 1.0;

} else if (n = 64 n = 67) {

score = (float) 1.3;

} else if (n = 68 n = 71) {

score = (float) 1.7;

} else if (n = 72 n = 75) {

score = (float) 2.0;

} else if (n = 76 n = 79) {

score = (float) 2.3;

} else if (n = 80 n = 83) {

score = (float) 2.7;

} else if (n = 84 n = 87) {

score = (float) 3.0;

} else if (n = 88 n = 91) {

score = (float) 3.3;

} else if (n = 92 n = 95) {

score = (float) 3.7;

} else if (n = 96 n = 100) {

score = (float) 4.0;

}

return score;

}

}

public Vector getTitle() {

// getXlsInfo();

return title;

}

public Vector[] getArray() {

getXlsInfo();

return array;

}

}

因为时间问题就没有再写了,上面是我以前做的,不懂就q我


本文标题:java下载本地文件代码 java下载本地文件代码是什么
本文路径:http://scyanting.com/article/ddpighi.html