Whole text file to a String in Java

后端 未结 10 2251
遇见更好的自我
遇见更好的自我 2020-12-01 15:44

Does Java has a one line instruction to read to a text file, like what C# has?

I mean, is there something equivalent to this in Java?:

String data =          


        
10条回答
  •  伪装坚强ぢ
    2020-12-01 16:18

    Java 11 adds support for this use-case with Files.readString, sample code:

    Files.readString(Path.of("/your/directory/path/file.txt"));
    

    Before Java 11, typical approach with standard libraries would be something like this:

    public static String readStream(InputStream is) {
        StringBuilder sb = new StringBuilder(512);
        try {
            Reader r = new InputStreamReader(is, "UTF-8");
            int c = 0;
            while ((c = r.read()) != -1) {
                sb.append((char) c);
            }
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        return sb.toString();
    }
    

    Notes:

    • in order to read text from file, use FileInputStream
    • if performance is important and you are reading large files, it would be advisable to wrap the stream in BufferedInputStream
    • the stream should be closed by the caller

提交回复
热议问题