1 22 23 package gnu.mail.util; 24 25 import java.io.ByteArrayOutputStream ; 26 import java.io.IOException ; 27 import java.io.InputStream ; 28 29 import javax.mail.MessagingException ; 30 import javax.mail.Session ; 31 32 37 public class LineInputStream 38 extends ReadFilterInputStream 39 { 40 41 private boolean isDataAvailable = false; 42 43 46 public LineInputStream (InputStream in) 47 { 48 super (in); 49 } 50 51 52 59 public String readLine () 60 throws IOException { 61 62 final int EOF = -1; 63 final int CR = 13; 64 final int LF = 10; 65 66 ByteArrayOutputStream buffer = new ByteArrayOutputStream (); 67 int c; 68 String line = null; 69 70 try { 71 72 c = read (); 73 isDataAvailable = (c != EOF); 74 75 while (c != LF && 76 c != EOF) { 77 78 87 88 if (c == CR) { 89 90 c = read (); 92 if (c != LF) { 93 buffer.write (CR); 94 } 95 96 } 97 else { 98 buffer.write (c); 99 c = read (); 100 } 101 } 102 } 103 catch (IOException ioe) { 104 isDataAvailable = false; 105 throw ioe; 106 } 107 108 if (isDataAvailable) { 109 110 line = buffer.toString (); 113 114 } 115 116 return line; 118 } 119 120 } 121 | Popular Tags |