如何在Android内部存储中保存txt文件?

时间:2013-11-26 18:21:38

标签: android eclipse android-emulator save android-file

我正在尝试将输出数据(经度和纬度值)从以下代码保存到内部存储中的txt文件,以便稍后使用,

import android.app.Activity;
import android.content.Context;
import android.location.Criteria;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.view.Menu;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity implements LocationListener{

    LocationManager locationManager ;
    String provider;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // Getting LocationManager object
        locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);        

        // Creating an empty criteria object
        Criteria criteria = new Criteria();

        // Getting the name of the provider that meets the criteria
        provider = locationManager.getBestProvider(criteria, false);

       // try here!!!????

        if(provider!=null && !provider.equals("")){

            // Get the location from the given provider 
            Location location = locationManager.getLastKnownLocation(provider);

            locationManager.requestLocationUpdates(provider, 20000, 1, this);

            if(location!=null)
                onLocationChanged(location);
            else
                Toast.makeText(getBaseContext(), "Location can't be retrieved", Toast.LENGTH_SHORT).show();

        }else{
            Toast.makeText(getBaseContext(), "No Provider Found", Toast.LENGTH_SHORT).show();
        }
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }

    @Override
    public void onLocationChanged(Location location) {
        // Getting reference to TextView tv_longitude
        TextView tvLongitude = (TextView)findViewById(R.id.tv_longitude);

        // Getting reference to TextView tv_latitude
        TextView tvLatitude = (TextView)findViewById(R.id.tv_latitude);

        // Setting Current Longitude
        tvLongitude.setText("Longitude:" + location.getLongitude());

        // Setting Current Latitude
        tvLatitude.setText("Latitude:" + location.getLatitude() );

    }

    @Override
    public void onProviderDisabled(String provider) {
        // TODO Auto-generated method stub      
    }

    @Override
    public void onProviderEnabled(String provider) {
        // TODO Auto-generated method stub      
    }

    @Override
    public void onStatusChanged(String provider, int status, Bundle extras) {
        // TODO Auto-generated method stub      
    }   
}

问题是,我无法创建txt文件,因为我在主要活动中使用了以下代码:

 try { 
           File root = Environment.getExternalStorageDirectory(); 
           if (root.canWrite()){ 
               File f = new File(root, "test.txt"); 
               FileWriter fw = new FileWriter(f); 
               BufferedWriter out = new BufferedWriter(fw); 
               out.write("Hello world"); 
               out.close(); 
           } 
       } catch (IOException e) { 
       }

是不是错了?!我的错是什么?如果上面的代码是正确的,我应该在哪里添加它!

提前感谢谁将重播^^

0 个答案:

没有答案