在 java 中生成自定义文本文件
Generating custom text files in java
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 文件中的名称数量创建脚本数量。前任。 CSV 中的 7 个名称生成 7 个自定义 .txt 文件,每个文件都有其适当的名称。
非常感谢任何帮助!
编辑:我更新了我的代码以匹配使代码工作所需的更正。
您似乎遇到了一些范围界定问题。每当你声明一个变量时,它只存在于它最近的一组大括号的边界内。通过在您的 main 方法中声明 strar,您可以明确使用它的唯一地方就是在您的 main 方法中。您的 Printer() 方法之前没有提到过 strar,它知道它的唯一方法是将它作为参数传递给函数。
即
Printer(String[] args)
或者,更好的是:
Printer(String arg)
然后在你的 while 循环中用
调用它
Printer(strar[0]);
此外,您的 Printer 方法以在 strar[0] 上调用的 "for each" 循环开始,这无论如何都不是 foreach 循环的有效目标,因为如果我没记错的话,String 不是 Iterable目的。如果您按照我推荐的方式实现了 Printer 函数,则无论如何都不需要 for each 循环,因为一次只会传递一个名称。
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 文件中的名称数量创建脚本数量。前任。 CSV 中的 7 个名称生成 7 个自定义 .txt 文件,每个文件都有其适当的名称。
非常感谢任何帮助!
编辑:我更新了我的代码以匹配使代码工作所需的更正。
您似乎遇到了一些范围界定问题。每当你声明一个变量时,它只存在于它最近的一组大括号的边界内。通过在您的 main 方法中声明 strar,您可以明确使用它的唯一地方就是在您的 main 方法中。您的 Printer() 方法之前没有提到过 strar,它知道它的唯一方法是将它作为参数传递给函数。
即
Printer(String[] args)
或者,更好的是:
Printer(String arg)
然后在你的 while 循环中用
调用它Printer(strar[0]);
此外,您的 Printer 方法以在 strar[0] 上调用的 "for each" 循环开始,这无论如何都不是 foreach 循环的有效目标,因为如果我没记错的话,String 不是 Iterable目的。如果您按照我推荐的方式实现了 Printer 函数,则无论如何都不需要 for each 循环,因为一次只会传递一个名称。