首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

诸位:jsp页面中怎样读取文件

2012-08-28 
各位:jsp页面中怎样读取文件前提:eclipse,tomcat工程名:Test将要读取文件:Test/WebContent/test/tmp.txt请

各位:jsp页面中怎样读取文件
前提: eclipse,tomcat
工程名:Test
将要读取文件:Test/WebContent/test/tmp.txt

请问在jsp中怎样读取上面的tmp文件


最好给出一个例子,谢谢各位

[解决办法]
此处省去87个字
[解决办法]
找一本java教程从头到尾好好看看。
[解决办法]
还真没想过这个.
服务层输入流读到字符串里,
存到request或者其他什么,
再从页面取

不知道有没有其他简便的方法.
[解决办法]
不知这个是不是你所需求的,或许有些麻烦:
import java.io.*;
import java.net.*;

/**
 * 单线程连接
 * @author Administrator
 *
 */

public class RemoteFileClient {
protected BufferedReader socketReader;
protected PrintWriter socketWriter;
protected String hostIp;
protected int hostPort;

//客服端


public RemoteFileClient(String aHostIp, int aHostPort) {
hostIp = aHostIp;
hostPort = aHostPort;
}
public String getFile(String fileNameToGet) {
StringBuffer fileLines = new StringBuffer();

try {

//我们用 PrintWriter 把请求发送到主机,PrintWriter 是我们在创建连接期间建立的。

socketWriter.println(fileNameToGet);
socketWriter.flush();

String line = null;
while ((line = socketReader.readLine()) != null)
fileLines.append(line + "\n");
} catch (IOException e) {
System.out.println("Error reading from file: " + fileNameToGet);
}

return fileLines.toString();
}

public void setUpConnection() {
try {
Socket client = new Socket(hostIp, hostPort);

socketReader = new BufferedReader(new InputStreamReader(client.getInputStream()));
socketWriter = new PrintWriter(client.getOutputStream()); // 我们把 Socket 的 InputStream 包装进 BufferedReader 以使我们能够读取流的行。然后,我们把 Socket 的 OutputStream 包装进 PrintWriter 以使我们能够发送文件请求到服务器

} catch (UnknownHostException e) {
System.out.println("Error setting up socket connection: unknown host at " + hostIp + ":" + hostPort);
} catch (IOException e) {
System.out.println("Error setting up socket connection: " + e);
}
}
public void tearDownConnection() {
try {
socketWriter.close();
socketReader.close();
} catch (IOException e) {
System.out.println("Error tearing down socket connection: " + e);
}
}
 


public static void main(String[] args) {
//服务端接受请求
RemoteFileClient server = new RemoteFileClient(3000);
server.acceptConnections();


//客服端请求
RemoteFileClient remoteFileClient = new RemoteFileClient("127.0.0.1", 3000); //客户机用 Socket 连接到服务器。服务器用 ServerSocket 在端口 3000 侦听。客户机请求服务器 请求上的文件内容
remoteFileClient.setUpConnection();


String fileContents = remoteFileClient.getFile("I://论坛/JSP与XML的结合.txt"); //从服务器和端口号倾听获取对应的具体文件

remoteFileClient.tearDownConnection();

System.out.println(fileContents);
}


//服务端

int listenPort;
public RemoteFileClient(int aListenPort) {
listenPort = aListenPort;
}
public void acceptConnections() {
try {
ServerSocket server = new ServerSocket(listenPort);
Socket incomingConnection = null;
while (true) {


incomingConnection = server.accept();

//System.out.println("测试:"+incomingConnection);

handleConnection(incomingConnection);
}
} catch (BindException e) {
System.out.println("Unable to bind to port " + listenPort);
} catch (IOException e) {
System.out.println("Unable to instantiate a ServerSocket on port: " + listenPort);
}
}
public void handleConnection(Socket incomingConnection) {
try {
OutputStream outputToSocket = incomingConnection.getOutputStream(); //跟在客户机中一样,我们用 getOutputStream() 和 getInputStream() 来获取与我们刚创建的 Socket 相关联的流。跟在客户机端一样,我们把 InputStream 包装进 BufferedReader,把 OutputStream 包装进 PrintWriter
InputStream inputFromSocket = incomingConnection.getInputStream();

BufferedReader streamReader = new BufferedReader(new InputStreamReader(inputFromSocket));

FileReader fileReader = new FileReader(new File(streamReader.readLine())); //首先,我们使用 Socket 的 InputStream 的 BufferedReader。我们应该获取一条有效的文件路径,所以我们用该路径名构造一个新 File。我们创建一个新 FileReader 来处理读文件的操作。



BufferedReader bufferedFileReader = new BufferedReader(fileReader); //这里我们把 FileReader 包装进 BufferedReader 以使我们能够逐行地读该文件。


PrintWriter streamWriter = new PrintWriter(incomingConnection.getOutputStream());
String line = null;
while ((line = bufferedFileReader.readLine()) != null) {
streamWriter.println(line);
}

fileReader.close();
streamWriter.close();
streamReader.close();
} catch (Exception e) {
System.out.println("Error handling a client: " + e);
}
}


}

热点排行