我是在Android编程的初学者。我想做一个类似于下面描述的apk:
我需要做的(在程序中):
public class MainActivity extends AppCompatActivity {
Button btn;
private static int Counter = 0;
private static final String FILE_NAME = "data.txt";
private static String TAG="MainActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = (Button) findViewById(R.id.button);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Counter++;
Log.d(TAG, "onClick: counter "+Counter);
saveChec();
Lengt();
//load();
// subSu();
}
});
}
private void subSu() {
}
public void Lengt(){
long length = new File(getFilesDir().getAbsolutePath() + FILE_NAME).length();
if (length == 0){
//get alvays empty..
Log.d(TAG, "Buff: empty ");
save(); //add value 1 to txt file
}else{
Log.d(TAG, "Buff: full");
}
}
public void saveChec() {
FileOutputStream fos = null;
try {
fos = openFileOutput(FILE_NAME, MODE_PRIVATE);
Log.d(TAG, "saveChec: crated file ");
} catch (FileNotFoundException e) {
e.printStackTrace();
} finally {
if (fos != null) {
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
// return;
}
public void load() {
FileInputStream fis = null;
try {
fis = openFileInput(FILE_NAME);
InputStreamReader isr = new InputStreamReader(fis);
BufferedReader br = new BufferedReader(isr);
//get alvays null
if (br.readLine() == null) {
Log.d(TAG, "load: empty file ");
fis.close();
save();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (fis != null) {
try {
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
private void save() {
FileOutputStream fos = null;
try {
fos = openFileOutput(FILE_NAME, MODE_PRIVATE);
int number = 1;
String numberAsString = Integer.toString(number);
fos.write(numberAsString.getBytes());
Log.d(TAG, "save: numberAsString "+numberAsString);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (fos != null) {
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
// return;
}
}
谢谢你的回答!
发布于 2019-01-19 00:40:47
请使用此代码:-
public void SaveFile()
{
try {
//Getting Internal Storage
File file = new File(Environment.getExternalStorageDirectory(),"");
File dfile = new File(file+"/data.txt");
FileWriter write = null;
//if File Does Exists
if (!dfile.exists()) {
write = new FileWriter(file+"/data.txt");
write.write("1");
write.close();
}
else{
FileReader read = new FileReader(dfile);
BufferedReader br = new BufferedReader(read);
String snum = br.readLine();
if(snum!=null) {
//Converting Sring to Integer
int num = Integer.parseInt(snum);
num++;
write = new FileWriter(file+"/data.txt");
write.write(String.valueOf(num));
write.close();
}
else
{
write = new FileWriter(file+"/data.txt");
write.write("1");
write.close();
}
}
}catch (IOException ex){}
}将这些权限添加到报表文件中:-
<uses-permission android:name="READ_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="WRITE_EXTERNAL_STORAGE"></uses-permission>发布于 2019-01-19 00:42:22
你一定要用文件吗?我会使用Shared Preferences来存储这个值,因为它只是一个原始值。
https://stackoverflow.com/questions/54262012
复制相似问题