Skip to content

Package: LineInputStream

LineInputStream

Coverage

1: /*
2: * Copyright (c) 2021 Oracle and/or its affiliates. All rights reserved.
3: *
4: * This program and the accompanying materials are made available under the
5: * terms of the Eclipse Public License v. 2.0, which is available at
6: * http://www.eclipse.org/legal/epl-2.0.
7: *
8: * This Source Code may also be made available under the following Secondary
9: * Licenses when the conditions for such availability set forth in the
10: * Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
11: * version 2 with the GNU Classpath Exception, which is available at
12: * https://www.gnu.org/software/classpath/license.html.
13: *
14: * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15: */
16:
17: package jakarta.mail.util;
18:
19: import java.io.IOException;
20:
21: /**
22: * LineInputStream supports reading CRLF terminated lines that
23: * contain only US-ASCII characters from an input stream. Provides
24: * functionality that is similar to the deprecated
25: * <code>DataInputStream.readLine()</code>. Expected use is to read
26: * lines as String objects from an IMAP/SMTP/etc. stream.
27: * <br>
28: * This class also supports UTF-8 data by calling the appropriate
29: * constructor. Or, if the System property <code>mail.mime.allowutf8</code>
30: * is set to true, an attempt will be made to interpret the data as UTF-8,
31: * falling back to treating it as an 8-bit charset if that fails.
32: *
33: */
34: public interface LineInputStream {
35:
36: /**
37: * Read a line containing only ASCII characters from the input
38: * stream. A line is terminated by a CR or NL or CR-NL sequence.
39: * A common error is a CR-CR-NL sequence, which will also terminate
40: * a line.
41: * The line terminator is not returned as part of the returned
42: * String. Returns null if no data is available. <p>
43: *
44: * @return                the line
45: * @exception        IOException        for I/O errors
46: */
47: String readLine() throws IOException;
48:
49: }