Here you can find the source of copyFileWithEolConversion(File inFile, File outFile, Charset charset)
public static void copyFileWithEolConversion(File inFile, File outFile, Charset charset) throws IOException
//package com.java2s; /************************************************************************** OmegaT - Computer Assisted Translation (CAT) tool with fuzzy matching, translation memory, keyword search, glossaries, and translation leveraging into updated projects. //from www.jav a2s . c o m Copyright (C) 2008 Alex Buloichik 2009 Didier Briel 2012 Alex Buloichik, Didier Briel 2014 Alex Buloichik, Aaron Madlon-Kay 2015-2016 Aaron Madlon-Kay Home page: http://www.omegat.org/ Support center: http://groups.yahoo.com/group/OmegaT/ This file is part of OmegaT. OmegaT is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. OmegaT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. **************************************************************************/ import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.IOException; import java.nio.charset.Charset; import java.nio.file.Files; public class Main { /** * Copy file and create output directory if need. EOL will be converted into target-specific or into * platform-specific if target doesn't exist. */ public static void copyFileWithEolConversion(File inFile, File outFile, Charset charset) throws IOException { File dir = outFile.getParentFile(); if (!dir.exists()) { dir.mkdirs(); } String eol; if (outFile.exists()) { // file exist - read EOL from file eol = getEOL(outFile, charset); } else { // file not exist - use system-dependent eol = System.lineSeparator(); } try (BufferedReader in = Files.newBufferedReader(inFile.toPath(), charset)) { try (BufferedWriter out = Files.newBufferedWriter(outFile.toPath(), charset)) { String s; while ((s = in.readLine()) != null) { // copy using known EOL out.write(s); out.write(eol); } } } } public static String getEOL(File file, Charset charset) throws IOException { String r = null; try (BufferedReader in = Files.newBufferedReader(file.toPath(), charset)) { while (true) { int ch = in.read(); if (ch < 0) { break; } if (ch == '\n' || ch == '\r') { r = Character.toString((char) ch); int ch2 = in.read(); if (ch2 == '\n' || ch2 == '\r') { r += Character.toString((char) ch2); } break; } } } return r; } }