Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java servlet,将数据从文本文件写入网页_Java_Servlets_Ioexception - Fatal编程技术网

Java servlet,将数据从文本文件写入网页

Java servlet,将数据从文本文件写入网页,java,servlets,ioexception,Java,Servlets,Ioexception,我用java编写了以下servlet代码: package servlets; import java.io.*; import java.util.*; import javax.servlet.*; import java.net.*; public class Servlet1 extends GenericServlet{ private ServletConfig sc; public void init(ServletConfig conf) throws ServletEx

我用java编写了以下servlet代码:

package servlets;
import java.io.*;
import java.util.*;
import javax.servlet.*;
import java.net.*;


public class Servlet1 extends GenericServlet{
 private ServletConfig sc;
 public void init(ServletConfig conf) throws ServletException{
     super.init(conf);
     sc = conf;
 }

 public void read_file(){
     String filename = "/web/WEB-INF/Data.txt";
     BufferedReader br = new BufferedReader(new FileReader(filename));
     // Why this doesn't work ?

 }

 public void service(ServletRequest req, ServletResponse resp) throws ServletException,IOException{   
     resp.setContentType("text/html; charset=windows-1251");
     PrintWriter pw = resp.getWriter();
     pw.println("<html><head>");
     pw.println("<title>sdasdasda</title>");
     pw.println("</head><body><h2>Servlet information</h2>");
     pw.println("Servlet name - "+sc.getServletName()+ "<br>");
     pw.println("Servlet parametrs: <br>");
     //pw.println(read_file());
     Enumeration names = sc.getInitParameterNames();

     while(names.hasMoreElements()){
        String name = (String)names.nextElement();
        pw.print(name + ": ");
        pw.println(sc.getInitParameter(name)+"<br>");
     }
     pw.println("</body></html>");
     pw.flush();
     pw.close();
 }
 public void destroy(){
     sc = null;
 }

}
包servlet;
导入java.io.*;
导入java.util.*;
导入javax.servlet.*;
导入java.net。*;
公共类Servlet1扩展了GenericServlet{
私人服务器配置sc;
public void init(ServletConfig conf)抛出ServletException{
super.init(conf);
sc=conf;
}
公共无效读_文件(){
字符串filename=“/web/web-INF/Data.txt”;
BufferedReader br=新的BufferedReader(新文件读取器(文件名));
//为什么这不起作用?
}
公共无效服务(ServletRequest-req,ServletResponse-resp)抛出ServletException,IOException{
相应的setContentType(“text/html;charset=windows-1251”);
PrintWriter pw=resp.getWriter();
pw.println(“”);
pw.println(“SDA”);
println(“Servlet信息”);
println(“Servlet名称-”+sc.getServletName()+”
”; println(“Servlet参数:
”; //println(read_file()); 枚举名称=sc.getInitParameterNames(); while(names.hasMoreElements()){ 字符串名称=(字符串)名称.nextElement(); 打印(名称+“:”); pw.println(sc.getInitParameter(name)+“
”; } pw.println(“”); pw.flush(); 关闭(); } 公共空间销毁(){ sc=null; } }
这个
BufferedReader br=newbufferedreader(newfilereader(filename))总是显示没有文件,但我把它放在ProjectName/web/web-INF/文件夹中。
如何读取此文件,或获取正确的路径

首先,您指定的是一个绝对路径(您的路径以
/
开头)

第二个FileReader不是在web应用程序中加载资源的正确方法,如果您的应用程序war未被提取,该怎么办?它仍然会失败


您应该使用获取并使用它读取资源。

首先,您指定的是绝对路径(您的路径以
/
开头)

第二个FileReader不是在web应用程序中加载资源的正确方法,如果您的应用程序war未被提取,该怎么办?它仍然会失败


您应该使用获取并使用它读取资源。

尝试提供完整路径:在ide中,右键单击文件并转到属性;要获取绝对路径作为旁注,请在未明确指定编码的情况下,不要使用new FileReader()。在查找编码错误的过程中,您将为自己和同事省去很多痛苦。请尝试给出完整的路径:在ide中,右键单击文件并转到属性;要获取绝对路径作为旁注,请在未明确指定编码的情况下,不要使用new FileReader()。在寻找编码错误的过程中,您将为自己和您的同事省去很多痛苦。仍然是同样的问题,我将InputStream InputStream=new FileInputStream(“C:\\Users\\Volodia\\IdeaProjects\\ProjectName\\web\\web-INF\\Data.txt”)@使用
FileInputStream
的user3135093与使用
FileWriter
具有相同的缺点,两者都试图通过直接使用文件系统来访问文件。请确保部署中存在文件
Data.txt
,并使用
ServletContext\getResourceAsStream
,以便通过
类路径进行访问!还是同样的问题,我把InputStream=newFileInputStream(“C:\\Users\\Volodia\\IdeaProjects\\ProjectName\\web\\web-INF\\Data.txt”)@使用
FileInputStream
的user3135093与使用
FileWriter
具有相同的缺点,两者都试图通过直接使用文件系统来访问文件。请确保部署中存在文件
Data.txt
,并使用
ServletContext\getResourceAsStream
,以便通过
类路径进行访问!