开发者

How do I read from a File to an array

开发者 https://www.devze.com 2023-04-09 03:31 出处:网络
I am trying to read from a file to an array. I tried two different styles and both aren\'t working. Below are the two styles.

I am trying to read from a file to an array. I tried two different styles and both aren't working. Below are the two styles.

Style 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();

        }
    }

Style 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();
        }

    }

I need it to read each line of string and store each line in an array. But neither works. How do I go about it?


Do yourself a favor and use a library that provides this functionality for you, e.g.

Guava:

// 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);

Commons / IO:

// one String per File
String data = FileUtils.readFileToString(file, "UTF-8");
// or one String per Line
List<String> data = FileUtils.readLines(file, "UTF-8");


It's not really clear exactly what you're trying to do (partly with quite a lot of code commented out, leaving other code which won't even compile), but I'd recommend you look at using Guava:

List<String> lines = Files.readLines(file, Charsets.UTF_8);

That way you don't need to mess around with the file handling yourself at all.

0

精彩评论

暂无评论...
验证码 换一张
取 消