2013-05-11 4 views
0

Я пытаюсь сгенерировать XML-файл на SD-карте. Я добавил пользовательское разрешение в файл манифеста, но когда я подключаю свой телефон к USB-устройству и запускаю приложение в eclipse, то в первый раз создается XML-файл, но когда я снова запускаю приложение через телефон или через eclipse, тогда он не получает создано. Для создания файла я должен снова подключить свой телефон через USB, и он также создается только один раз. Пожалуйста, помогите мне.XML-файл создается только один раз не каждый раз, когда приложение выполняется

public class MainActivity extends Activity { 
    TextView myTextView; 
    EditText E1; 
    EditText E2; 
    EditText E3; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    Button b1= (Button) findViewById(R.id.button1); 
    Button b3= (Button) findViewById(R.id.button3); 
    E1 = (EditText) findViewById(R.id.editText1); 
    E2 = (EditText) findViewById(R.id.editText2); 
    E3 = (EditText) findViewById(R.id.editText3); 
    b1.setOnClickListener(new OnClickListener() { 
    @Override 
    public void onClick(View arg0) { 

    DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance(); 
    DocumentBuilder docBuilder; 
    try { 
     docBuilder = docFactory.newDocumentBuilder(); 
     Document doc = docBuilder.newDocument(); 
     Element rootElement = doc.createElement("Class"); 
     doc.appendChild(rootElement); 
     Element student = doc.createElement("Student"); 
     rootElement.appendChild(student); 
     Element firstname = doc.createElement("firstname");         firstname.appendChild(doc.createTextNode(E1.getText().toString())); 
      student.appendChild(firstname); 

     Element Email = doc.createElement("Email"); 
     Email.appendChild(doc.createTextNode(E2.getText().toString())); 
     student.appendChild(Email); 

     Element Roll = do c.createElement("Roll_No"); 
     Roll.appendChild(doc.createTextNode(E3.getText().toString())); 
     student.appendChild(Roll); 
     TransformerFactory transformerFactory = TransformerFactory.newInstance(); 
     Transformer transformer = transformerFactory.newTransformer(); 
     DOMSource source = new DOMSource(doc); 

     File FF=new File(Environment.getExternalStorageDirectory()+"//new.xml"); 
     try { 
     FF.createNewFile(); 
      } catch (IOException e) { 
      e.printStackTrace(); 
      } 

     StreamResult result = new StreamResult(FF); 
     transformer.transform(source, result); 
      } 
     catch (ParserConfigurationException e) { 
      e.printStackTrace(); 
      } 
     catch (TransformerException e) {    
      e.printStackTrace();} 
      Toast.makeText(getApplicationContext(),  Environment.getExternalStorageDirectory().toString(), Toast.LENGTH_LONG).show();        } 
    }); 

    b3.setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      // Close the application 
      finish(); }}); 
    } 
} 

ответ

1

Вы попадаете в исключение и игнорируете его. Это не хорошая практика, и именно поэтому вы не знаете, что ошибка:

 File FF=new File(Environment.getExternalStorageDirectory()+"//new.xml"); 
     try { 
      FF.createNewFile(); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

линия

FF.createNewFile(); 

бросает исключение, потому что вы не можете создать новый файл, если он уже существует. Удалите его сначала или откройте его, чтобы перезаписать его.

http://docs.oracle.com/javase/7/docs/api/java/nio/file/FileAlreadyExistsException.html

Используйте этот код вместо:

File FF=new File(Environment.getExternalStorageDirectory()+"//new.xml"); 
try { 
    if (FF.exists()); 
     FF.delete(); 
    FF.createNewFile(); 
} catch (IOException e) { 
    // Handle the error here! don't ignore it. Either throw the exception all the way, or log it, or something. 
    throw e; 
} 
+0

Я попытался код, указанный вами теперь файл не все получать создан. – user2044296

+0

Вышло ли исключение? Поставьте логарифм, пожалуйста. – tbkn23

Смежные вопросы