我有名为 P_Builder.java 的 java 程序。
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.lang.*;
import java.text.*;
import java.util.*;
public class P_Builder {
public String PB_Reader( String file_location, String pb_cmd)throws IOException
{
File file=new File(file_location);
ProcessBuilder pb = new ProcessBuilder("cmd","/C",pb_cmd);
pb.directory(file);
Process p = pb.start();
BufferedReader reader = new BufferedReader(new InputStreamReader(
p.getInputStream()));
String readline= reader.toString();
return readline;
/*String readline=null;
do{
return readline;
}while((readline = reader.readLine()) != null);*/
}
}
现在我在 A.JSP 中多次使用这个 P_Builder.java,因为我需要多次运行流程构建器。
我希望将 P_Builder 的逐行输出发送到 A.JSP,以便我可以使用 readLine() 方法读取逐行输出,并使用 A.JSP 打印输出,其中我在输出中省略了几行。
A.JSP
<%@ page import="java.io.*"%>
<%@ page import="javax.servlet.*"%>
<%@ page import="javax.servlet.http.*"%>
<%@ page import="java.text.DecimalFormat"%>
<%@ page import="license_Dashboard.P_Builder" %>
String pcm= "lmutil.exe lmstat -a -c 426@STIOSP569";
P_Builder p1=new P_Builder();
String readline1=p1.PB_Reader("D:\\SINGULA\\Log", pcm);
String readline;
int j=0;
while ((readline = readline1.readLine()) != null) {
if(j==2 || j==3 || j==6)
{
//out.println(readline);
//out.println("<br>");
}
else if(j>9)
{
out.println(readline);
out.println("<br>");
}
else
{
//out.println("<br>");
}
j++;
}
在我遇到错误之后:- A.JSPin while 循环中的“方法 readLine() 对于字符串类型未定义”。
更新:- 下午 5:23
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.lang.*;
import java.text.*;
import java.util.*;
public class P_Builder {
public String PB_Reader( String file_location, String pb_cmd)throws IOException
{
File file=new File(file_location);
ProcessBuilder pb = new ProcessBuilder("cmd","/C",pb_cmd);
pb.directory(file);
Process p = pb.start();
BufferedReader reader = new BufferedReader(new InputStreamReader(
p.getInputStream()));
return reader;
//String readline= reader.toString();
//return readline;
/*String readline=null;
do{
return readline;
}while((readline = reader.readLine()) != null);*/
}
}
即使这样也会出错,因为它需要以 String 类型返回。如何将返回类型设置为 BufferedReader 因为我想返回由 bufferedReader 读取的多个值。
之后谁能告诉我如何捕获 JSP 中的值并将其打印在网页上。
更新:- 晚上 7:00
public class P_Builder {
public String PB_Reader( String file_location, String pb_cmd)throws IOException
{
File file=new File(file_location);
ProcessBuilder pb = new ProcessBuilder("cmd","/C",pb_cmd);
pb.directory(file);
Process p = pb.start();
BufferedReader reader = new BufferedReader(new InputStreamReader(
p.getInputStream()));
StringBuffer result=new StringBuffer();
String readline;
while((readline = reader.readLine()) != null)
{
//this.fin_readline[j]=readline+"\n";
result.append(readline);
result.append("\n");
}
}
return result.toString();
}
现在A.JSP已修改:-
<%
out.println("\n");
try{
P_Builder p1=new Test_P_Builder();
String pcm= "lmutil.exe lmstat -a -c 426@STIOSP569";
String res=p1.B_Reader("D:\\SINGULA\\Log", pcm);
String[] lines = res.toString().split("\\n");
int j=0;
for(String readline:lines)
{
if(j>3)
{
out.println(readline);
}
j++;
}
}
catch(Exception e)
{
out.println(e);
}
%>
现在输出没有对齐。丝网打印已附上。
希望您能解决使输出对齐的问题?
给出后输出.println(readline + "
");在 JSP 中
最佳答案
您的PB_Reader
方法需要返回一个BufferedReader
而不是String
。
String readline= reader.toString();
这是您出于某种原因决定获取阅读器的字符串表示形式的地方。不要这样做。
关于java - 面对: The method readLine() is undefined for the type String,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29938234/