2016-08-03 8 views
1
public class ScriptCreator { 

    public static void main(String[] args) throws IOException { 
     #Choose the CSV file that I am importing the data from 
     String fName = "C:\\Users\\MyUser\\Downloads\\CurrentApplications (1).csv"; 
     String thisLine; 
     int count = 0; 
     FileInputStream fis = new FileInputStream(fName); 
     DataInputStream myInput = new DataInputStream(fis); 
     int i = 0; 
     #Prints the List of names in the CSV file 
     while((thisLine = myInput.readLine()) != null){ 
      String strar[] = thisLine.split(","); 
      Printer(strar[0]); 
     } 

    } 

    public static void Printer(String arg) throws IOException{  
     #Want to pull from the String strar[0] from above 
     #Says that it cannot be resolved to a variable  
      String name = arg; 
      String direc = "C:/Users/MyUser/Documents/"; 
      String path = "C:/Users/MyUser/Documents"; 
      Iterable<String> lines = Arrays.asList("LOGIN -acceptssl ServerName","N " + name + " " + direc ,"cd " + name,"import " + path + "*.ppf" + " true","scan", "publishassessase -aseapplication " + name,"removeassess *","del " + name); 
      Path file = Paths.get(name + ".txt"); 
      Files.write(file, lines, Charset.forName("UTF-8")); 

    } 

} 

Приветствуем вас всех и благодарим за любую помощь, которую вы можете мне дать. Я пытаюсь создать java-программу, которая будет вытаскивать имена из файла CSV и принимать эти имена для создания пользовательских выходов для текстовых файлов. Мне трудно установить переменную, которую я могу использовать, чтобы захватить имена, которые печатаются, и использовать их для генерации текстового файла путем установки переменной имени. Мне также понадобится помощь в том, чтобы создать количество скриптов для количества имен в файле CSV. Ex. 7 имен в CSV составляет 7 пользовательских файлов .txt, каждый из которых имеет соответствующее имя.Создание пользовательских текстовых файлов в java

Любая помощь очень ценится!

Редактировать: Я обновил свой код, чтобы соответствовать исправлению, которое необходимо для обеспечения работы кода.

ответ

0

Похоже, что у вас есть некоторые проблемы с определением области. Всякий раз, когда вы объявляете переменную, она существует только в пределах ее ближайшего набора фигурных скобок. Объявив strar в вашем основном методе, единственное место, которое вы можете явно использовать, находится в вашем основном методе. Ваш метод Printer() не имеет предыдущего упоминания о strar, и единственный способ узнать об этом - передать его в качестве аргумента функции.

т.е.

Printer(String[] args) 

Или еще лучше:

Printer(String arg) 

, а затем вызвать его в цикле в то время как с

Printer(strar[0]); 

Кроме того, ваш метод принтера начинается с «для каждый "цикл, вызываемый на strar [0], который в любом случае не является допустимой целью для цикла foreach, потому что, если я правильно напомню, String а не объект Iterable. Если вы внедрили функцию «Принтер» так, как я рекомендовал, вам все равно не понадобится для каждого цикла, так как будет только одно имя, переданное за раз.

+1

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

+0

Не беспокойтесь! Рад, что смог помочь :) – Daniel