2016-06-01 7 views
-1

Я пытаюсь сделать две основные функции, которые позволят мне вызвать их из других классов, чтобы вернуть HashMap из 'getAllData()' и записать в файл в ' writeToFile() ', без везения. Я искал его какое-то время и просто получаю множество странных ошибок.BufferedReader/Writer не работает в Java

Код:

static HashMap<Integer ,String> getAllData(Integer choice) throws Exception{ 
    InputStream localInputStream = ClassLoader.getSystemClassLoader().getResourceAsStream("Shadow.txt"); 
    BufferedReader br = new BufferedReader(new InputStreamReader(localInputStream)); 
    if (choice.equals(1)){ 
     while ((!data.equals(null))){ 
      data = br.readLine(); 
      dataString = dataString+data; 
     } 
     writeToFile(dataString); 
     br.close(); 
    }return name; 
} 

static void writeToFile(String data) throws IOException{; 
    File file = new File ("Shadow.txt"); 
    FileWriter fileWriter = new FileWriter(file, true); 
    BufferedWriter bw = new BufferedWriter(fileWriter); 
    bw.write(data); 
    bw.newLine(); 
    bw.flush(); 
    bw.close(); 
} 

С помощью этого текущего кода, ничего не происходит. Файл остается точно таким, каким он есть, хотя для меня код должен читать все, начиная с него, а затем добавлять его.

Как это исправить? Благодаря

+2

Просьба сообщить подробности о ошибках (кроме «множество» и «странного»). – khelwood

+0

Добавлен @Khelwood «С этим текущим кодом ничего не происходит. Файл остается таким, каким он есть, хотя для меня код должен читать все, начиная с него, а затем добавлять его». –

+1

Как вы думаете, '' новый файл («Shadow.txt», «true») 'делает? – Thomas

ответ

0

Это может помочь вам:

static void getAllData(final Integer choice) throws Exception { 
    final BufferedReader br = new BufferedReader(new FileReader("Shadow.txt")); 
    String data = ""; 
    final StringBuilder builder = new StringBuilder(); 
    if(choice.equals(1)) { 
     while(data != null) { 
      data = br.readLine(); 
      if(data != null) { 
       builder.append(data + "\n"); 
      } 
     } 
     writeToFile(builder.toString()); 
     br.close(); 
    } 
} 

static void writeToFile(final String data) throws IOException { 
    final File file = new File("Shadow.txt"); 
    final FileWriter fileWriter = new FileWriter(file, true); 
    final BufferedWriter bw = new BufferedWriter(fileWriter); 
    bw.write(data); 
    bw.flush(); 
    bw.close(); 
} 
+0

Поскольку он пытаясь выучить Java, вы должны обязательно добавить какое-то объяснение того, что вы делаете, и почему вместо того, чтобы просто сбрасывать код. – Thomas

+0

Думаю, я понимаю это, благодаря Кришне, за то, что он скомпоновал код и благодарит @Thomas за то, что он помог мне и стал внимательным . :) Много значит! –

+0

@Thomas Я думаю, он дал некоторый кикстарт, чтобы прочитать файл и записать в файл. При сбрасывании кода я предполагал, что он знает, что он делает, я просто пытался изменить код и сбрасывать его с минимальными изменениями. –