2012-07-04 3 views
-5

На самом деле я разрабатываю одно приложение в том случае, когда при запуске приложения он впервые создаст один файл txt, и если файл уже существует, он просто напишет это в файле.
Но я не знаю, как проверить, что программно файл существует или not.I попытались,Как узнать программно, что файл уже существует или нет?

try 
    { 
     FPartyCreation = new File ("/data/data/com.MediExcel/files/","dbPartyCreation.dat"); 
     if (FPartyCreation.exists()) 
     { 
      writeOnFile(); 
     } 
     else 
     { 
      FPartyCreation.createNewFile(); 
      writeOnFile(); 
     } 
    } 
    catch (IOException ioe) 
    { 
     ioe.printStackTrace(); 
    } 

Но это дает следующие ошибки, а также файл не создается на том же пути.

07-06 01:39:26.183: E/AndroidRuntime(23107): FATAL EXCEPTION: main 
07-06 01:39:26.183: E/AndroidRuntime(23107): java.lang.NullPointerException 
07-06 01:39:26.183: E/AndroidRuntime(23107): at com.MediExcel.AddMethodPartyCreation.getMethod(AddMethodPartyCreation.java:28) 
07-06 01:39:26.183: E/AndroidRuntime(23107): at com.MediExcel.PartyCreationActivity$1.onClick(PartyCreationActivity.java:64) 
07-06 01:39:26.183: E/AndroidRuntime(23107): at android.view.View.performClick(View.java:3511) 
07-06 01:39:26.183: E/AndroidRuntime(23107): at android.view.View$PerformClick.run(View.java:14105) 
07-06 01:39:26.183: E/AndroidRuntime(23107): at android.os.Handler.handleCallback(Handler.java:605) 
07-06 01:39:26.183: E/AndroidRuntime(23107): at android.os.Handler.dispatchMessage(Handler.java:92) 
07-06 01:39:26.183: E/AndroidRuntime(23107): at android.os.Looper.loop(Looper.java:137) 
07-06 01:39:26.183: E/AndroidRuntime(23107): at android.app.ActivityThread.main(ActivityThread.java:4424) 
07-06 01:39:26.183: E/AndroidRuntime(23107): at java.lang.reflect.Method.invokeNative(Native Method) 
07-06 01:39:26.183: E/AndroidRuntime(23107): at java.lang.reflect.Method.invoke(Method.java:511) 
07-06 01:39:26.183: E/AndroidRuntime(23107): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 
07-06 01:39:26.183: E/AndroidRuntime(23107): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 
07-06 01:39:26.183: E/AndroidRuntime(23107): at dalvik.system.NativeStart.main(Native Method) 

Пожалуйста, помогите мне

Благодаря

+0

Чтобы не написать код для вас, мы можем помочь вам найти ошибки или объяснить то, что вы не понимаете, но сначала вам нужно идти вперед. Есть много примеров этого онлайн. –

+0

Пожалуйста, проверьте мой измененный вопрос. –

+0

Прекратите задавать смешные вопросы .... – Makky

ответ

1

Создание SQLite базы данных -

public class DatabaseHelper extends SQLiteOpenHelper { 

static final String dbName="demoDB"; 
static final String employeeTable="Employees"; 
static final String colID="EmployeeID"; 
static final String colName="EmployeeName"; 
static final String colAge="Age"; 
static final String colDept="Dept"; 

static final String deptTable="Dept"; 
static final String colDeptID="DeptID"; 
static final String colDeptName="DeptName"; 

static final String viewEmps="ViewEmps"; 

Создание базы данных

public void onCreate(SQLiteDatabase db) 
{ 
    // TODO Auto-generated method stub 

    db.execSQL("CREATE TABLE "+deptTable+" ("+colDeptID+ " INTEGER PRIMARY KEY , "+ 
    colDeptName+ " TEXT)"); 

    db.execSQL("CREATE TABLE "+employeeTable+" 
    ("+colID+" INTEGER PRIMARY KEY AUTOINCREMENT, "+ 
     colName+" TEXT, "+colAge+" Integer, "+colDept+" 
    INTEGER NOT NULL ,FOREIGN KEY ("+colDept+") REFERENCES 
    "+deptTable+" ("+colDeptID+"));"); 


    db.execSQL("CREATE TRIGGER fk_empdept_deptid " + 
    " BEFORE INSERT "+ 
    " ON "+employeeTable+ 

    " FOR EACH ROW BEGIN"+ 
    " SELECT CASE WHEN ((SELECT "+colDeptID+" FROM "+deptTable+" 
    WHERE "+colDeptID+"=new."+colDept+") IS NULL)"+ 
    " THEN RAISE (ABORT,'Foreign Key Violation') END;"+ 
    " END;"); 

    db.execSQL("CREATE VIEW "+viewEmps+ 
    " AS SELECT "+employeeTable+"."+colID+" AS _id,"+ 
    " "+employeeTable+"."+colName+","+ 
    " "+employeeTable+"."+colAge+","+ 
    " "+deptTable+"."+colDeptName+""+ 
    " FROM "+employeeTable+" JOIN "+deptTable+ 
    " ON "+employeeTable+"."+colDept+" ="+deptTable+"."+colDeptID 
    ); 
    //Inserts pre-defined departments 
    InsertDepts(db); 
} 

Посмотрите на эту Using-SQLite-Database-with-Android Бло г. Надеюсь, этого блога достаточно для ваших запросов.

+0

где эта база данных хранится? –

+0

@MahiMali ', где хранится эта база данных?'. Он будет храниться в вашем DDMS рабочей области. – Praveenkumar

+0

Пожалуйста, проверьте мой измененный вопрос. –

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