/* * This file is part of WhereYouGo. * * WhereYouGo 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. * * WhereYouGo 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 WhereYouGo. If not, see <http://www.gnu.org/licenses/>. * * Copyright (C) 2012 Menion <whereyougo@asamm.cz> */ package menion.android.whereyougo.utils; import java.io.File; import java.io.FileOutputStream; public class FileSystemDataWritter extends Thread { private static final String TAG = "FileSystemDataWritter"; private String fileToWrite; private byte[] dataToWrite; private long bytePos; /** * Save bytes to file. * * @param fileToWrite * @param dataToWrite * @param bytePos * position at write data or <br> * -1 if write as whole new file<br> * -2 if write at the end of file */ public FileSystemDataWritter(String fileToWrite, byte[] dataToWrite, long bytePos) { this.fileToWrite = fileToWrite; this.dataToWrite = dataToWrite; this.bytePos = bytePos; this.start(); } public void run() { try { FileSystem.checkFolders(fileToWrite); // create if not exist // Log.w(TAG, "write to file: " + fileToWrite); File file = new File(fileToWrite); if (!file.exists()) { file.createNewFile(); } if (dataToWrite != null) { FileOutputStream os; if (bytePos == -1) { os = new FileOutputStream(file, false); } else if (bytePos == -2) { os = new FileOutputStream(file, true); } else { os = new FileOutputStream(file, true); os.getChannel().position(bytePos); } os.write(dataToWrite); os.close(); } } catch (Exception e) { Logger.e(TAG, "run(" + fileToWrite + ")", e); } } }