All Downloads are FREE. Search and download functionalities are using the official Maven repository.

prerna.poi.main.helper.NewLinePredictor Maven / Gradle / Ivy

The newest version!
package prerna.poi.main.helper;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;

import prerna.util.Constants;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

public class NewLinePredictor {

	private static final Logger classLogger = LogManager.getLogger(NewLinePredictor.class);

	private static final char CR = '\r';
	private static final char LF = '\n';

	public static char[] predict(String fileName) {    
		Reader freader = null;
		Reader reader = null;
		try {
			freader = new FileReader(fileName);
			reader = new BufferedReader(freader);
			char[] result = predict(reader);
			return result;
		} catch (IOException e) {
			classLogger.error(Constants.STACKTRACE, e);
		} finally {
			if(reader != null) {
				try {
					reader.close();
				} catch (IOException e) {
					classLogger.error(Constants.STACKTRACE, e);
				}
			}
			if(freader != null) {
				try {
					freader.close();
				} catch (IOException e) {
					classLogger.error(Constants.STACKTRACE, e);
				}
			}
		}
		return new char[]{CR, LF};
	}

	private static char[] predict(Reader reader) throws IOException {
		int c;
		while ((c = reader.read()) != -1) {
			switch(c) {        
			case LF: return new char[]{LF};
			case CR: {
				if (reader.read() == LF) {
					return new char[]{CR, LF};
				}
				return new char[]{CR};
			}
			default: continue;
			}
		}
		return new char[]{CR, LF};
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy