2013-08-06 90 views
-1

我想從一個方法返回一個數組;它不工作。 我從文本文件中獲取數組的信息。 數組在方法期間成功獲取信息,但不會將其返回給主。Java。方法不會返回數組

import javax.swing.JFrame; 

public class TerminalVenta { 

    public static void main (String[] args){ 
     Log k = new Log(); 
     String[][]array = new String[5][3]; 
     k.abrirLog(); 
     k.leerArchivo(array); 
     System.out.println(array[0][1]); 
     k.closeFile(); 
    } 
} 


import java.io.*; 
import java.util.*; 

public class Log { 
    private Scanner x; 
    String arreglo[][] = new String [5][3]; 

    public void abrirLog() { 
     try { 
      x = new Scanner(new File ("Log.txt")); 
     } 
     catch(Exception e) { 
      System.out.println("No se pudo abrir el archivo"); 
     } 
    } 

    public String[][] leerArchivo(String array[][]) { 
     String a = x.next(); 
     String b = x.next(); 
     String c = x.next(); 
     String d = x.next(); 
     String e = x.next(); 
     String f = x.next(); 
     String g = x.next(); 
     String h = x.next(); 
     String i = x.next(); 
     String j = x.next(); 
     String k = x.next(); 
     String l = x.next(); 
     String m = x.next(); 
     String n = x.next(); 
     String o = x.next(); 

     arreglo[0][0] = a; 
     arreglo[0][1] = b; 
     arreglo[0][2] = c; 
     arreglo[1][0] = d; 
     arreglo[1][1] = e; 
     arreglo[1][2] = f; 
     arreglo[2][0] = g; 
     arreglo[2][1] = h; 
     arreglo[2][2] = i; 
     arreglo[3][0] = j; 
     arreglo[3][1] = k; 
     arreglo[3][2] = l; 
     arreglo[4][0] = m; 
     arreglo[4][1] = n; 
     arreglo[4][2] = o; 

     System.out.println(arreglo[0][0]); 
     System.out.println(arreglo[0][1]); 
     return arreglo; 
    } 

    public void closeFile() { 
     x.close(); 
    } 
} 
+0

你能告訴我們你是如何嘗試從文本文件做呢? – bas

+0

格式不正確,'arreglo'永遠不會初始化 – bas

回答

6

我想從一個方法返回一個數組,但不能正常工作,

最有可能你沒有得到你被忽略返回值的結果。如果你不想丟棄返回的值,你可以這樣做。

String[][]result = leerArchivo(array); 

,如果你做到這

leerArchivo(array); 

就會丟棄返回的值。

注意:您也忽略了傳入的array。您可以放棄它,因爲它沒有被使用。

+1

@bas True,但這不是OP的狀態。 –

+0

'array = k.leerArchivo(array);' –

+0

Thnx,現在它正在工作:) – user2658007

0

您沒有使用返回的值。您正在更新不同的陣列,而不是發送到leerArchivo方法的陣列。在不改變你的代碼的情況下,你可以嘗試:

String[][]array = new String[5][3]; 
k.abrirLog(); 
String[][] retArray = k.leerArchivo(array); 
System.out.println(retArray[0][1]); 
1

你正在返回leerArchivo中的數組,但是你沒有捕獲它。實際上,你需要在該函數中使用一個數組,但是對此無所作爲。你應該改變

public String[][] leerArchivo(String array[][]){ 

public String[][] leerArchivo(){ 

,改變

k.leerArchivo(array); 

array=k.leerArchivo(); 
+0

thnx工作完美! – user2658007