关于java:将文件的文本作为字符串返回?

Return the text of a file as a string?

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
How to create a Java String from the contents of a file

是否可以处理多行文本文件并将其内容作为字符串返回?

如果可能的话,请告诉我怎么做。

如果您需要更多的信息,我正在处理I/O。我想打开一个文本文件,处理它的内容,将其作为字符串返回,并将文本区域的内容设置为该字符串。

有点像文本编辑器。


使用apache commons fileutils的readfiletoString


1
2
3
4
5
6
7
8
9
10
11
12
13
String data ="";
try {
    BufferedReader in = new BufferedReader(new FileReader(new File("some_file.txt")));
    StringBuilder string = new StringBuilder();
    for (String line =""; line = in.readLine(); line != null)
        string.append(line).append("
"
);
    in.close();
    data = line.toString();
}
catch (IOException ioe) {
    System.err.println("Oops:" + ioe.getMessage());
}

先记住import java.io.*

这将用替换文件中的所有换行符,因为我认为没有任何方法可以在文件中使用分隔符。


在这里检查Java教程http://download.oracle.com/javase/tutorial/essential/io/file.html(下载.oracle.com/javase/tutorial/essential/io/file.html)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Path file = ...;
InputStream in = null;
StringBuffer cBuf = new StringBuffer();
try {
    in = file.newInputStream();
    BufferedReader reader = new BufferedReader(new InputStreamReader(in));
    String line = null;

    while ((line = reader.readLine()) != null) {
        System.out.println(line);
        cBuf.append("
"
);
        cBuf.append(line);
    }
} catch (IOException x) {
    System.err.println(x);
} finally {
    if (in != null) in.close();
}
// cBuf.toString() will contain the entire file contents
return cBuf.toString();


有点像

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
String result ="";

try {
  fis = new FileInputStream(file);
  bis = new BufferedInputStream(fis);
  dis = new DataInputStream(bis);

  while (dis.available() != 0) {

    // Here's where you get the lines from your file

    result += dis.readLine() +"
"
;
  }

  fis.close();
  bis.close();
  dis.close();

} catch (FileNotFoundException e) {
  e.printStackTrace();
} catch (IOException e) {
  e.printStackTrace();
}

return result;