在Java中读取单行文件的最佳方法是什么
是否有必要创建缓冲读取器while loop和all来读取单行文件?它的常量永不改变使读取文件更容易。还请记住如果您不关心正确的字符转换,您可以使用InputStream,而不是使用Reader类: 绩效讨论:在Java中读取单行文件的最佳方法是什么,java,Java,是否有必要创建缓冲读取器while loop和all来读取单行文件?它的常量永不改变使读取文件更容易。还请记住如果您不关心正确的字符转换,您可以使用InputStream,而不是使用Reader类: 绩效讨论: 以下是我的做法: String txt = new Scanner(new File(path)).useDelimiter("\\Z").next(); 这将把整个文件读入字符串 让我来为你解释一下: String txt = // the resulting String is s
以下是我的做法:
String txt = new Scanner(new File(path)).useDelimiter("\\Z").next();
这将把整个文件读入字符串
让我来为你解释一下:
String txt = // the resulting String is stored here
new Scanner( // Create a scanner to read the file
new File( "pathToFile" ) ) // pass a new file to the scanner to read
.useDelimiter("\\Z") // set the delimiter to the end of the file
.next(); // read the scanner until the next delimiter,
// in this case it is the end of the file.
正如标题本身所说,是否有必要创建缓冲读取器while循环和all来读取单行文件?它也是永恒不变的
不,这不是绝对必要的,如果文件是真的始终只有一行并且从不更改
BufferedReader br = ...
// Read contents of a 1 line file.
String line = br.readLine();
if (line == null || line.length() == 0) {
System.out.println("where's my input?");
} else if (br.readLine() != null) {
System.out.println("too much input!");
} else {
...
}
此外,正如其他人所提到的,还有其他读取/解析输入的方法可能比简单使用BufferedReader
更好。这取决于您对从文件中读取的行所做的操作
编辑
java中是否有类似于php中包含的内容
不在核心库中。但是IIRC有一个名为ApacheCommons的实用程序类,它有各种方法来做这类事情。例如,有两种方法可以将整个文件作为字节数组或字符串读取,还有一种方法可以读取文件并将行作为字符串数组返回
(但是,嘿,你为什么要为这么简单的事情添加一个第三方依赖项呢?你自己只需要半打Java代码就可以完成这项工作!!)@Esko Luontola我需要将这个文件(包含一个字符串)读成字符串,这是
扫描仪的另一个建议。自从文件I/O可用以来,我一直在使用它。@London:String myLine=myScanner.nextLine()
对于更复杂的文件,您可能希望在while循环中使用hasNextLine()
,但对于您的规范,只需调用nextLine()
就可以了。@Brian S感谢您在我使用字符串myLine=myScanner.nextLine(),然后myLine等于文件名,在我的例子中Scanner scan=newscanner(“HEADER”);它输出标题您使用了错误的扫描仪构造函数-尝试Scanner scan=new Scanner(新文件(“标题”)代码>我喜欢你提出的第二点,我不认为我的假设是错误的,因为这是头文件,我只需要包含它,它可能会更改,但我必须手动更改它,它在任何时候都不会追加。在java中是否有像php中包含的东西?@London-你自相矛盾。第一句你说你的假设是正确的;i、 e.文件永不更改。下一句你说你可以手动更改文件。事实上,你的假设是错误的,没有必要的。好吧,现在已经晚了,可能是tnx关于你上面的信息的情况,我不是在讽刺你。。。这会将多行文件作为单行读取。这不是问题所要问的…@Stephen,它像他想要的那样读取整个文件。他刚才提到他的档案只有一行。但这真的不重要。”…像他想要的那样”-但不是像他要求的那样。问题在于他的问题。他需要读取整个文件,但询问在读取单行文件时是否可以避免使用缓冲读取器。因为他上面的评论,我们只知道他到底想要什么。