Activity参数传递:
显示文本文件内容:
ShowFile.Show("/sdcard/Ltsdk/Log/log-2019-04-28.txt");
package com.sci.tool;
import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.widget.ScrollView;
import android.widget.TextView;
/** ShowFile.java:显示指定文本文件中的内容。
*
* 示例:ShowFile.Show("/sdcard/tmp/log-2019-04-30.txt");
* */
public class ShowFile extends Activity
{
/** 展示视屏广告 */
public static void Show(Context context, String FilePath)
{
Intent intent = new Intent(context, RewardVideoActivity.class);
intent.putExtra("FilePath", FilePath); // 添加参数信息
context.startActivity(intent);
}
TextView view = null;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
{
ScrollView scroll = new ScrollView(this);
scroll.setPadding(15, 0, 15, 0);
this.setContentView(scroll);
view = new TextView(this);
scroll.addView(view);
}
// 从文件路径FilePath,载入文件内容并展示
{
String filePath = this.getIntent().getStringExtra("FilePath"); // 获取参数信息
this.setTitle(filePath);
loadFileData(filePath);
}
}
/** 载入并显示文件数据 */
private void loadFileData(String filePath)
{
if (filePath == null || filePath.equals("")) return;
String data = FileToString(filePath);
view.setText(data);
}
/** 获取文件数据 */
private String FileToString(String filePath)
{
String data = "";
try
{
FileInputStream in = new FileInputStream(filePath);
data = InputStreamToString(in);
}
catch (FileNotFoundException e)
{
e.printStackTrace();
}
return data;
}
/** InputStream -> String */
public static String InputStreamToString(InputStream in)
{
String data = "";
byte[] bytes = InputStreamToByte(in);
data = new String(bytes);
return data;
}
/** InputStream -> Byte */
public static final byte[] InputStreamToByte(InputStream in)
{
byte[] bytes = {};
try
{
ByteArrayOutputStream byteOutStream = new ByteArrayOutputStream();
byte[] data = new byte[1024];
int count = 0;
while ((count = in.read(data, 0, 1024)) > 0)
{
byteOutStream.write(data, 0, count);
}
bytes = byteOutStream.toByteArray();
}
catch (Exception ex)
{
ex.printStackTrace();
}
return bytes;
}
}