2014-01-31 2 views
0

Я пытаюсь создать текстовый файл с информацией из массива String и до сих пор выполнял все, но получаю массив в текстовый файл как содержимое. Любая помощь будет принята с благодарностью, и я скопировал весь код, задействованный до сих пор.Java Вставка массива String в текстовый файл

import java.io.BufferedWriter; 
import java.io.File; 
import java.io.FileWriter; 
import java.io.IOException; 




public class WriteToFileExample 
{ 
public static void main(String[] args) 
{ 
    String newDir = "new_dir"; 

     boolean success = (new File(newDir)).mkdir(); 
     newDir = "/Volumes/Mav/Names/"; 
     success = (new File(newDir)).mkdirs(); 
     File filename = new File("/Volumes/Mav/Names/javaprogramming.txt"); 

     if (success) 
     { 
      System.out.println("Successfully created the file at directory " + filename); 
     } 

     else 
     { 
      System.out.println("An error occurred creating the directory or file " + filename + ". Please contact your System Administrator."); 
     } 

     try 
     { 
      String[] names = {“John”, “Matthew”, “Luke”, “Peter”}; 

      if (!filename.exists()) 
      { 
       filename.createNewFile(); 
      } 

      FileWriter fw = new FileWriter(filename.getAbsoluteFile()); 
      BufferedWriter bw = new BufferedWriter(fw); 
      bw.write(names); 
      bw.close(); 


     } 
     catch (IOException e) 
     { 
      e.printStackTrace(); 
     } 
} 
} 
+0

В чем проблема? Что происходит, когда вы выполняете 'System.out.println (names)'? Вы знаете, почему он печатает то, что он печатает? –

+0

Вы не можете просто написать 'names' в файл. вам нужно выполнить итерацию по каждому элементу массива и записать их один за другим. – SirBraneDamuj

+0

Используйте 'Arrays.toString (names)' in 'println'. –

ответ

2

Похоже, что у вас может быть smart quotes в вашем массиве. Умные цитаты не действительны для Java кавычки (и я думаю, что это очень трудно программировать Java в Word) ...

String[] names = {"John", "Matthew", "Luke", "Peter"}; 

Вы можете перебрать массив и записать каждое имя файла,

for (int i = 0; i < names.length; i++) { 
    if (i != 0) bw.write(", "); 
    String name = names[i]; 
    bw.write(name); 
} 

, но вы можете предпочесть использовать Arrays#toString как это -

bw.write(java.util.Arrays.toString(names)); 
+0

Не могли бы вы углубиться в это немного подробнее. Я начинаю понимать, что вы имеете в виду, файл, но проблема, с которой я столкнулась сейчас, связана с первоначальным объявлением массива. Вы упомянули Smart Quotes, и я даже не уверен, что это такое. Вся помощь приветствуется. – CoShark

+0

@CoShark Можете ли вы увидеть разницу между " Джо hn "и" John "? У второго есть фигурные кавычки, что и Слово для вас. Они не будут работать на Java. Вы можете отключить их в Word, но я предлагаю вам вместо этого использовать NetBeans или Eclipse (или notepad ++). Все трое свободны. –

+0

Эллиот, спасибо, что указали это. Я использую текстовый wrangler, чтобы написать это, но я даже не заметил, что была такая разница. Я скопировал имена из текстового процессора, и это должно быть там, где они переносятся. Это действительно исправило мою проблему! – CoShark

1

Мой друг пожалуйста intiallize ваша строка

как этот

String[] names = {"John", "Matthew", "Luke", "Peter"}; 

not like String[] names = {“John”, “Matthew”, “Luke”, “Peter”}; 

и одно предложение со стороны и есть, чтобы сделать один, наконец, блокировать, чтобы закрыть ваш ресурс не пытаться закрыть их в блоке Ьгу

+0

@CoShark надеется, что теперь это сработает для вас – Tenacious

+0

вы пробовали мое предложение, они являются частью лучших практик, даже если ур код сбой для чего-то ваши ресурсы закрываются – Tenacious

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