2014-04-18 51 views
0

我有一個調用的第二種方法的方法,第二種方法會:寫一個二維數組爲字符串,然後以.txt文件 - Java的

  • 創建任何丟失的目錄
  • 創建一個文件
  • 解碼二維字符串[]到字符串(不工作)
  • 寫入內容
  • 收件已解碼的字符串的文件具有頭部(不工作)

第一種方法

public static boolean store(Exception exception, String[][] flags){ 
    return storePrivate(exception, location, flags); 
} 

第二種方法(不是所有的代碼只是相關的代碼)

private static boolean storePrivate(Exception exception, String dir, String[][] flags){ 
    String flag = ""; 

    for(int i = 0; i >= flags.length; i++){ 
     flag = flag + "" + flags[i][0] + ": " + flags[i][1] + "\n"; 
    } 
    try { 
     File directory = new File(dir); 
     File file = new File(dir + id + ".txt"); 
     if (!directory.exists()) { 
      directory.mkdirs(); 
     } 
     file.createNewFile(); 
     FileWriter filewriter = new FileWriter(file.getAbsoluteFile()); 
     BufferedWriter writer = new BufferedWriter(filewriter); 


     if(flag != ""){ 
      writer.write("Flags by Developer: "); 
      writer.write(flag); 
     } 
     writer.flush(); 
     writer.close(); 
     return true; 
    } catch (IOException e) { 
     return false; 
    } 
} 

呼叫第一種方法

public static void main(String[] args) { 
    try { 
     test(); 
    } catch (Exception e) { 
     // TODO Auto-generated catch block 
     ExceptionAPI.store(e, new String[][]{{"flag1", "Should be part of flag1"}, {"flag2", "this should be flag 2 contence"}}); 
    } 
} 

public static void test() throws IOException{ 
    throw new IOException(); 
} 

我找不到爲什麼這是行不通的。我認爲這與第二種方法有關,特別是

if(flag != ""){ 
    writer.write("Flags by Developer: "); 
    writer.write(flag); 
} 

謝謝如果有人能幫助我。

,如果你想只是轉換一個字符串數組到一個字符串Curlip

+0

該方法中「Exception」的用法是什麼? – Astrobleme

+1

@ambigram_maker在對第一個答案的評論中指出,你的循環條件'i> = flags.length'是錯誤的,而應該是'i

+0

@ambigram_maker我遺漏了的部分代碼 – Curlip

回答

2

試試這個:

String[] stringTwoD = //... I think this is a 1D array, and Sting[][] is a 2D, anyway 
    String stringOneD = ""; 
    for (String s : stringTwoD) 
     stringOneD += s;//add the string with the format you want 

順便說一句,你的循環狀況似乎是錯誤的和,所以你可以將其更改爲:

for(int i = 0; i < flags.length; i++){ 
    flag += flags[i][0] + ": " + flags[i][1] + "\n"; 
} 
+1

正好...... OP寫入'... i> = flags.length;我++)...' – Astrobleme

+0

你最好使用'StringBuilder'。 – Astrobleme

+0

@ambigram_maker>我只是想通知他/她應該改變。我也會添加這個方法。 – mok

相關問題