java - 面对: The method readLine() is undefined for the type String

标签 java jsp jakarta-ee

enter image description here我有名为 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);
    }

%>

现在输出没有对齐。丝网打印已附上。 enter image description here

希望您能解决使输出对齐的问题?

给出后输出.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/

相关文章:

c# - 使用线程在 C# 中接收数据包

javascript - 是否有与我们在 ASP.net 中使用的文本编辑器等效的 JSP

JBoss 上的 Javascript 源文件有错误的内容类型/mime 类型?

java - 如何使用 JSTL 启动静态函数?如何读取字符串?

java - @AccessTimeout(value = 0) 和 @Lock(LockType.WRITE) 之间的区别

java - 服务器始终使用 Jersey 2 + Tomcat 6 返回 404 错误

java - 从错误的 xsl 格式文档中获取属性值

java - int 与整数比较 Java

java - Grails - 两个日期之间的差异

java - 如何验证servlet处理是否真的在做非阻塞io?