code: public static DZcs cs_load(InputStream in)
  	{
  		int i, j;
  		double x[], x_re, x_im ;
  		DZcs T;
  		String line, tokens[] ;
  		Reader r = new InputStreamReader(in);
  		BufferedReader br = new BufferedReader(r);
  
  		T = cs_spalloc(0, 0, 1, true, true) ;	/* allocate result */
  
  		try
  		{
  			while ((line = br.readLine()) != null)
  			{
  				tokens = line.trim().split("\\s+") ;
  				if (tokens.length != 4) return null ;
  				i = Integer.parseInt(tokens [0]) ;
  				j = Integer.parseInt(tokens [1]) ;
  				x_re = Double.parseDouble(tokens [2]) ;
  				x_im = Double.parseDouble(tokens [3]) ;
  				x = new double[] {x_re, x_im} ;
  				if (!cs_entry(T, i, j, x)) return (null) ;
  			}
  			r.close();
  			br.close();
  		}
  		catch (IOException e)
  		{
  			return (null) ;
  		}
  		return (T) ;
  	}
docs: Loads a triplet matrix T from a file. Each line of the file contains
  four values: a row index i, a column index j, a real value aij, and an
  imaginary value aij.
  The file is zero-based.
  
  @param fileName
  file name
  @return T if successful, null on error