001    /*
002     * LAPIS lightweight structured text processing system
003     *
004     * Copyright (C) 1998-2002 Carnegie Mellon University,
005     * Copyright (C) 2003 Massachusetts Institute of Technology.
006     * All rights reserved.
007     *
008     * This library is free software; you can redistribute it
009     * and/or modify it under the terms of the GNU General
010     * Public License as published by the Free Software
011     * Foundation, version 2.
012     *
013     * LAPIS homepage: http://graphics.lcs.mit.edu/lapis/
014     */
015    
016    package lapisx.io;
017    
018    import java.io.*;
019    
020    public abstract class Line {
021    
022        public static String readLine (InputStream in, int max) throws IOException {
023            StringBuffer buf = new StringBuffer ();
024            int i;
025            int c = 0;
026            for (i = 0; i < max && (c = in.read ()) != -1 && c != '\n'; ++i)
027                buf.append ((char) c);
028    
029            if (i == 0 && c == -1)
030                return null; // EOF
031    
032            String line = buf.toString ();
033            return line;
034        }
035    
036        public static void writeLine (OutputStream out, String line) throws IOException {
037            for (int i = 0, n = line.length (); i < n; ++i)
038                out.write (line.charAt(i));
039            out.write ('\n');
040        }
041    }