<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<%@ page import="java.io.*"%>
<%@ page import="org.apache.struts2.ServletActionContext"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<% //request.setCharacterEncoding("UTF-8") ;
String realpath = ServletActionContext.getServletContext()
.getRealPath("/upload");
try {
// 创建文件输入流对象
FileInputStream is = new FileInputStream(realpath+"\\"+"nihao.doc");
// 设定读取的字节数
int n = 512;
byte buffer[] = new byte[n];
// 读取输入流
while (is.read(buffer, 0, n) >0) {
String str = new String(buffer);
out.print(str);
out.print("<br>");
}
// 关闭输入流
is.close();
} catch (IOException ioe) {
System.out.println(ioe);
} catch (Exception e) {
System.out.println(e);
}
%>
构建源 构建目标 输入输出流实现传输
主要思想:1,构建源;2构建目标;3,用输入输出流来实现传输;
字节输入、输出流:InputStream / OutputStream,字符输入、输出流Reader/Writer;
注:一般文本数据用字符流,其他格式数据用字节流;
InputStreamReader把一个InputStream转化成一个Reader;
BufferedReader通常和PrintWriter配合使用;
字......
答案就在这里:【insigma】IO流(文件读取)
----------------------Hi,地球人,我是问答机器人小S,上面的内容就是我狂拽酷炫叼炸天的答案,除了赞同,你还有别的选择吗?
构建源 构建目标 输入输出流实现传输
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%> 这里是 GB2312 看一下源文件是什么编码,如果编码不同就在读写的时候重新设置编码
// 创建文件输入流对象
FileInputStream is = new FileInputStream(realpath+"\"+"nihao.doc");
应该是这里出错了,比如你这个文件 是用UTF-8编码的。
然后你将这些字节转换成字符时,你没有指定解码的格式,一般是使用ISO.所以你读的时候要指定下解码的格式
如
FileInputStream is = new FileInputStream(realpath+"\"+"nihao.doc");
InputStreamRead read=new InputStreamRead(is,"UTF-8")//这里可以设置不同的解码方式
// 设定读取的字节数
int n = 512;
byte buffer[] = new byte[n];
// 读取输入流
while (read.read(buffer, 0, n) >0) {
String str = new String(buffer);
out.print(str);
out.print("<br>");
}
使用InputStreamRead read=new InputStreamRead(is,"UTF-8")//这里可以设置不同的解码方式。
然后再从read里来读
没有设置编码,设置编码试试
<% 这里面的是java代码%>这个你可以debug调试下看看是什么错误