3

これはおそらく非常に簡単に解決できますが、私はしばらくこれに固執しています。データの書き込みに使用するwhileループを取得しました。while ループのデータを文字列に書き込みたい。

public void dumpPart(Part p) throws Exception {
    InputStream is = p.getInputStream();
    if (!(is instanceof BufferedInputStream)) {
        is = new BufferedInputStream(is);
    }
    int c;
    System.out.println("Message: ");
    while ((c = is.read()) != -1) {
        System.out.write(c);  //I want to write this data to a String.

    }
    sendmail.VerstuurEmail(mpMessage, kenmerk);
}

解決済み:

public void dumpPart(Part p) throws Exception {
    InputStream is = p.getInputStream();
    if (!(is instanceof BufferedInputStream)) {
        is = new BufferedInputStream(is);
    }
    int c;
     final StringWriter sw = new StringWriter();
    System.out.println("Message: ");
    while ((c = is.read()) != -1) {
        sw.write(c);
    }
    mpMessage = sw.toString();;
    sendmail.VerstuurEmail(mpMessage, kenmerk);
}

ご協力いただきありがとうございます。

4

6 に答える 6

6

java.io.StringWriter(JDK 1.4以降以降)を検討できます。

 System.out.println("Message: ");

 final StringWriter sw = new StringWriter();

 int c;
 while ((c = is.read()) != -1) {
    sw.write(c);
 }

 String data = sw.toString();
于 2012-09-17T11:20:03.047 に答える
5

IOUtils.toString(inputStream)などを使用します。

于 2012-09-17T11:19:21.720 に答える
2

System.out呼び出しの代わりに、ループの前にStringBufferを初期化して、それに追加します。

StringBuffer s = new StringBuffer();
while ((c = is.read()) != -1) {
  s.append((char) c);
}
于 2012-09-17T11:18:39.387 に答える
1

1 つの可能性は次のとおりです。

        int c;
    System.out.println("Message: ");
    StringWriter sw = new StringWriter();
    while ((c = is.read()) != -1) {
        sw.write(c);
    }
    System.out.println(sw.toString());
于 2012-09-17T11:24:57.923 に答える
1

もう1つの方法:

StringBuffer buffer = new StringBuffer();
byte[] b = new byte[4096];
for (int n; (n = is.read(b)) != -1;) {
  buffer.append(new String(b, 0, n));
}
String str = buffer.toString();
于 2012-09-17T11:28:52.443 に答える
1

StringBuffer ではなく StringBuilder オブジェクトを使用してそれを行うのが最善です ( StringBuilder と StringBuffer の違い)

public void dumpPart(Part p) throws Exception {
    InputStream is = p.getInputStream();
    if (!(is instanceof BufferedInputStream)) {
        is = new BufferedInputStream(is);
    }
    int c;
    StringBuilder sb = new StringBuilder();
    System.out.println("Message: ");
    while ((c = is.read()) != -1) {
        sb.append(c);

    }
    String result= sb.toString();
    sendmail.VerstuurEmail(mpMessage, kenmerk);
}
于 2012-09-17T11:20:55.983 に答える