001 /* 002 * Copyright (C) 2008-2010 by Holger Arndt 003 * 004 * This file is part of the Universal Java Matrix Package (UJMP). 005 * See the NOTICE file distributed with this work for additional 006 * information regarding copyright ownership and licensing. 007 * 008 * UJMP is free software; you can redistribute it and/or modify 009 * it under the terms of the GNU Lesser General Public License as 010 * published by the Free Software Foundation; either version 2 011 * of the License, or (at your option) any later version. 012 * 013 * UJMP is distributed in the hope that it will be useful, 014 * but WITHOUT ANY WARRANTY; without even the implied warranty of 015 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 016 * GNU Lesser General Public License for more details. 017 * 018 * You should have received a copy of the GNU Lesser General Public 019 * License along with UJMP; if not, write to the 020 * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 021 * Boston, MA 02110-1301 USA 022 */ 023 024 package org.ujmp.core.io; 025 026 import java.io.File; 027 import java.io.FileInputStream; 028 import java.io.IOException; 029 import java.io.InputStream; 030 import java.io.InputStreamReader; 031 import java.io.Reader; 032 import java.io.StringReader; 033 034 import org.ujmp.core.Matrix; 035 import org.ujmp.core.MatrixFactory; 036 import org.ujmp.core.enums.ValueType; 037 import org.ujmp.core.exceptions.MatrixException; 038 import org.ujmp.core.util.io.IntelligentFileReader; 039 040 public abstract class ImportMatrixSTRING { 041 042 public static final Matrix fromString(String string, Object... parameters) 043 throws MatrixException { 044 StringReader sr = new StringReader(string); 045 IntelligentFileReader r = new IntelligentFileReader(sr); 046 Matrix m = fromReader(r); 047 r.close(); 048 return m; 049 } 050 051 public static final Matrix fromStream(InputStream stream, Object... parameters) 052 throws MatrixException, IOException { 053 InputStreamReader r = new InputStreamReader(stream, "UTF-8"); 054 Matrix m = fromReader(r, parameters); 055 r.close(); 056 return m; 057 } 058 059 public static final Matrix fromFile(File file, Object... parameters) throws MatrixException, 060 IOException { 061 FileInputStream lr = new FileInputStream(file); 062 Matrix m = fromStream(lr, parameters); 063 m.setLabel(file.getAbsolutePath()); 064 lr.close(); 065 return m; 066 } 067 068 public static final Matrix fromReader(Reader reader, Object... parameters) 069 throws MatrixException { 070 StringBuilder s = new StringBuilder(); 071 072 try { 073 IntelligentFileReader lr = new IntelligentFileReader(reader); 074 String line = null; 075 while ((line = lr.readLine()) != null) { 076 if (line.length() > 0) { 077 s.append(line + "\n"); 078 } 079 } 080 lr.close(); 081 082 Matrix m = MatrixFactory.zeros(ValueType.STRING, 1, 1); 083 m.setAsString(s.toString(), 0, 0); 084 085 return m; 086 } catch (Exception e) { 087 throw new MatrixException(e); 088 } 089 } 090 091 }