0

PHPを1行ずつ読み取る関数をJavaで作成しています。一部の行がスキップされていることに気付きました。

Java での機能:

 public String ReadContentRegex(String path, String Regex) throws
 FileNotFoundException, IOException
     {
         final StringBuilder contents = new StringBuilder();

         BufferedReader br = new BufferedReader(

         new InputStreamReader(new FileInputStream(path)));

         try {
             String line;

             while ((line = br.readLine()) != null) {
                 System.out.println(br.readLine());

             }
         } finally {
             br.close();
         }

         return contents.toString();

     }

Java が以下を使用して読み取る必要がある PHP ファイルBufferedReader:

<?php #if (!APP_ACT) exit();

class dbtest extends Codeplexon\core\fwcontroller {

public $name = __CLASS__;

    static function destruct()
{
    // ili 404
    echo("Error function: ".__FUNCTION__);
}

public function db()
{       
        $model = new Codeplexon\model\fwmodel;
        $model->db->load();
        #$e = $model->db->count();
        $model->db->select();
        $model->db->from("db");
        $model->db->query();
        $a = $model->db->fetch();
        #$num_rows = $model->db->numrows();
        #$lastquery = $model->db->lastquery();

        var_dump($a);
}
    //etc....

間違った出力:

class dbtest extends Codeplexon\core\fwcontroller {

        // ili 404

            $model = new Codeplexon\model\fwmodel;
            $model->db->select();
            $a = $model->db->fetch();


            $model = new Codeplexon\model\fwmodel;
            $obj = array("val" => substr(md5(time()), 0, 10));
        }
        {
            $model->db->load();
            $model->db->where("id", "5");

            $model = new Codeplexon\model\fwmodel;
            $r = $model->db->querycustom('SELECT * FROM a_mvcdb.db WHERE id = 4');

        }
        {

.toString()return ステートメントまたはクラス名に問題があると思いますが、public String ReadContentRegex(String path, String Regex)何が問題なのかわかりません。

4

1 に答える 1

5

readLine()あなたは2回電話しています。

行を読み取り、それを String 変数に格納しますline

while ((line = br.readLine()) != null) {

次に、読んだ内容を無視して、println ステートメント内の別の行を読みます。

System.out.println(br.readLine());

上記の行を次のように変更します

System.out.println(line);
于 2013-07-03T16:54:19.143 に答える