#java #arrays #file-io
#java #массивы #file-io
Вопрос:
Я пытаюсь прочитать из файла в массив. Я пробовал два разных стиля, и оба не работают. Ниже приведены два стиля.
Стиль 1
public class FileRead {
int i;
String a[] = new String[2];
public void read() throws FileNotFoundException {
//Z means: "The end of the input but for the final terminator, if any"
a[i] = new Scanner(new File("C:\Users\nnanna\Documents\login.txt")).useDelimiter("\n").next();
for(i=0; i<=a.length; i ){
System.out.println("" a[i]);
}
}
public static void main(String args[]) throws FileNotFoundException{
new FileRead().read();
}
}
Стиль 2
public class FileReadExample {
private int j = 0;
String path = null;
public void fileRead(File file){
StringBuilder attachPhoneNumber = new StringBuilder();
try{
FileReader read = new FileReader(file);
BufferedReader bufferedReader = new BufferedReader(read);
while((path = bufferedReader.readLine()) != null){
String a[] = new String[3];
a[j] = path;
j ;
System.out.println(path);
System.out.println(a[j]);
}
bufferedReader.close();
}catch(IOException exception){
exception.printStackTrace();
}
}
Мне нужно, чтобы он считывал каждую строку строки и сохранял каждую строку в массиве. Но ни то, ни другое не работает. Как мне это сделать?
Комментарии:
1. как они не работают? (каковы ошибки или неточности в выходных данных?)
2. Пожалуйста, публикуйте только соответствующие части вашего кода, а не закомментированные материалы.
Ответ №1:
Сделайте себе одолжение и используйте библиотеку, которая предоставляет вам эту функциональность, например
// one String per File
String data = Files.toString(file, Charsets.UTF_8);
// or one String per Line
List<String> data = Files.readLines(file, Charsets.UTF_8);
// one String per File
String data = FileUtils.readFileToString(file, "UTF-8");
// or one String per Line
List<String> data = FileUtils.readLines(file, "UTF-8");
Ответ №2:
На самом деле не совсем ясно, что именно вы пытаетесь сделать (частично с довольно большим количеством закомментированного кода, оставляя другой код, который даже не будет компилироваться), но я бы рекомендовал вам взглянуть на использование Guava:
List<String> lines = Files.readLines(file, Charsets.UTF_8);
Таким образом, вам вообще не нужно возиться с обработкой файлов самостоятельно.