我想创建一个唯一的singular
文件,我将其保存到Android设备上的SD卡中。
该文件当前记录了记录为every second.
目前的问题是文件的名称创建如下:
Time t= new Time();
t.setToNow();
int timeFileMinute= t.minute;
int timeFileDate= t.yearDay;
int timeFileYear= t.year;
long timestamp=System.currentTimeMillis();
//creating file name
String fileName= "MathsRaw-" +timeFileMinute + timeFileDate + timeFileYear + android.os.Build.SERIAL;
问题在于,这会创建一个新文件each minute
,而不仅仅是整个游戏期间的文件。
即。如果游戏是在09.54
和09.55
上播放的,则会有two
个不同的文件,我不想要这些文件。
我可以使用什么来创建唯一的singular
文件?
请注意,我尝试使用timestamp
,但这使情况变得更糟。
完整的writeToFile方法:
public void writeToFileRawData(String data){
Time t= new Time();
t.setToNow();
int timeFileMinute= t.minute;
int timeFileDate= t.yearDay;
int timeFileYear= t.year;
long timestamp=System.currentTimeMillis();
//creating file name
String fileName= "MathsRaw-" +timeFileMinute + timeFileDate + timeFileYear + android.os.Build.SERIAL;
//creating the file where the contents will be written to
File file= new File(dir, fileName + ".txt");
FileOutputStream os;
try{
boolean append= true;
os= new FileOutputStream(file, append);
String writeMe =data + "\n";
if(isHeader2){
os.write(header2.getBytes());
isHeader2=false;
}
os.write(writeMe.getBytes());
os.close();
} catch(FileNotFoundException e){
e.printStackTrace();
}catch(IOException e){
e.printStackTrace();
}
}
答案 0 :(得分:2)
public class MYValueRecorder {
String fileName;
myValueRecorder () {
Time t= new Time();
t.setToNow();
int timeFileMinute= t.minute;
int timeFileDate= t.yearDay;
int timeFileYear= t.year;
long timestamp=System.currentTimeMillis();
//creating file name
fileName= "MathsRaw-" +timeFileMinute + timeFileDate + timeFileYear + android.os.Build.SERIAL;
}
public void writeToFileRawData(String data) {
// do your stuff here, just don't initialize fileName again.
}
}
使用它,在会话开始时初始化一个新类,然后只使用writeToFileRawData方法来编写数据。
答案 1 :(得分:0)
在开始时创建文件并将名称存储在变量中,然后保存到该文件。
答案 2 :(得分:0)
根据我对你的问题的理解,让我们说如果我玩你的游戏3次,应该有3个独特的文件,其中包含我所玩的每个会话的信息。如果我在这里错了,请纠正我。
我不确定,但我认为你在游戏循环或某种循环中调用writeToFileRawData(data)方法,这就是为什么它可能会创建多个文件而不是一个。
想法是在您的Activity的OnCreate()方法中创建一个新文件,然后您可以在游戏进行时写入相同的文件。 OnCreate()将仅在开始时调用,因此每次创建新文件时,您都可以使用该文件中的时间戳保存数据。