用Java保存顺序数据

时间:2016-10-25 04:29:14

标签: java android

我在保存顺序数据方面遇到一些问题(轮廓区域),我有一个检测轮廓的项目。我想在我的android中保存数据轮廓区域。我已经将该轮廓区域保存在文件中,但它只是最后一个,而不是顺序数据(所有轮廓区域)。 这是我的轮廓代码:

Imgproc.findContours(mDilated, contours, hierarchy, Imgproc.RETR_TREE, Imgproc.CHAIN_APPROX_SIMPLE);
int a =15;
float b = (float)4.55;
double maxVal = 0;
int maxValIdx = 0;
for ( int contourIdx=0; contourIdx < contours.size(); contourIdx++ ) {
    double contourArea = Imgproc.contourArea(contours.get(contourIdx));
    if (maxVal < contourArea) {
        maxVal = contourArea;
        maxValIdx = contourIdx;
    }

这是我保存文件的代码:

String taString = Integer.toString(a)+","+Float.toString(b)+","+Double.toString(maxVal);
writeToFile(taString);

这就是writeToFile函数:

private void writeToFile(String data) {
    try {
        File sdCard = Environment.getExternalStorageDirectory();
        File directory = new File (sdCard.getAbsolutePath() + "/MyFiles");
        directory.mkdirs();

        File file = new File(directory, "mysdfile.txt");
        FileOutputStream fOut = new FileOutputStream(file);
        OutputStreamWriter osw = new OutputStreamWriter(fOut);
        osw.write(data);
        osw.close();
    }
    catch (IOException e) {
        Log.e("Exception", "File write failed: " + e.toString());
    }

然后当我打开我的文件(msydfile.txt)时,它只包含a,b,轮廓区域(如:15,4.55,8418)。但我想保存其他轮廓区域,如顺序数据。

希望有人在这方面有一些经验。感谢..

1 个答案:

答案 0 :(得分:0)

如果您要附加数据,则必须告诉OutputStream

boolean append = true;
FileOutputStream fOut = new FileOutputStream(file, append); 

有关详细说明,请参阅FileOutputStream