com.tencent.tinker.build.info.InfoWriter Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of tinker-patch-lib Show documentation
Show all versions of tinker-patch-lib Show documentation
Tinker is a hot-fix solution library for Android, it supports dex, library and resources update without reinstalling apk.
/*
* Tencent is pleased to support the open source community by making Tinker available.
*
* Copyright (C) 2016 THL A29 Limited, a Tencent company. All rights reserved.
*
* Licensed under the BSD 3-Clause License (the "License"); you may not use this file except in
* compliance with the License. You may obtain a copy of the License at
*
* https://opensource.org/licenses/BSD-3-Clause
*
* Unless required by applicable law or agreed to in writing, software distributed under the License is
* distributed on an "AS IS" basis, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
* either express or implied. See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.tencent.tinker.build.info;
import com.tencent.tinker.build.patch.Configuration;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
import java.util.List;
/**
* Created by zhangshaowen on 16/3/8.
*/
public class InfoWriter {
protected final Configuration config;
/**
* infoFile, output info
*/
protected final String infoPath;
protected final File infoFile;
/**
* 首次使用时初始化
*/
protected Writer infoWrite;
public InfoWriter(Configuration config, String infoPath) throws IOException {
this.config = config;
this.infoPath = infoPath;
if (infoPath != null) {
this.infoFile = new File(infoPath);
if (!infoFile.getParentFile().exists()) {
infoFile.getParentFile().mkdirs();
}
} else {
this.infoFile = null;
}
}
public Configuration getConfig() {
return config;
}
public void writeLinesToInfoFile(List lines) throws IOException {
for (String line : lines) {
writeLineToInfoFile(line);
}
}
public void writeLineToInfoFile(String line) {
if (infoPath == null || line == null || line.length() == 0) {
return;
}
try {
checkWriter();
infoWrite.write(line);
infoWrite.write("\n");
infoWrite.flush();
} catch (Exception e) {
throw new RuntimeException("write info file error, infoPath:" + infoPath + " content:" + line, e);
}
}
private void checkWriter() throws IOException {
if (infoWrite == null) {
this.infoWrite = new BufferedWriter(new FileWriter(infoFile, false));
}
}
public void close() {
try {
if (infoWrite != null) infoWrite.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy