Java文件操作示例:使用File Scanner类读取文本文件

需积分: 5 0 下载量 107 浏览量 更新于2025-01-02 收藏 3KB ZIP 举报
资源摘要信息: "Java中的文件读取与File Scanner类:使用File类进行文件操作的示例" 在Java编程中,对文件的读取和操作是一个非常基础且关键的部分。本文将重点讨论使用Java的File类以及Scanner类来读取文本文件的方法。通过File类,我们可以获取文件的详细信息、创建、删除以及重命名文件。而Scanner类则是用于读取原始类型和字符串的简单文本扫描器。 在Java的IO(输入/输出)库中,File类是用于文件和目录路径名表示的抽象表示形式。File类提供了很多有用的方法,比如创建新文件、删除现有文件、检查文件是否为目录、获取文件大小等。而Scanner类是一个非常强大的工具,可以用来分析原始类型和字符串,它能够从不同源头读取数据,包括文件、标准输入流、字符串以及数组。 **File类的常用方法和属性** 1. 创建File对象:`File file = new File(String pathname);` 创建一个File对象代表由给定路径名字符串指定的文件或目录。 2. 获取绝对路径:`String getAbsolutePath();` 返回此抽象路径名的绝对路径名字符串。 3. 判断是否为目录:`boolean isDirectory();` 测试此抽象路径名表示的文件是否是一个目录。 4. 判断是否为文件:`boolean isFile();` 测试此抽象路径名表示的文件是否是一个标准文件。 5. 列出目录内容:`String[] list();` 列出此抽象路径名表示的目录中的文件和目录名称字符串数组。 6. 创建文件:`boolean createNewFile() throws IOException;` 当且仅当不存在具有此抽象路径名指定名称的文件时,创建一个新的空文件。 7. 删除文件或目录:`boolean delete();` 删除此抽象路径名表示的文件或目录。 **Scanner类的常用方法** 1. 创建Scanner对象:`Scanner scanner = new Scanner(File source);` 创建一个Scanner对象来读取指定文件的内容。 2. 读取下一个字符串:`String next();` 找到并返回输入的下一个标记。 3. 读取整数:`int nextInt();` 读取并返回输入的下一个整数。 4. 关闭扫描器:`void close();` 关闭此扫描器。 在实际应用中,我们通常结合File类和Scanner类来读取文件内容。首先使用File类来获取文件的引用,然后用Scanner类来逐行或逐个元素地读取文件内容。以下是一个简单的例子: ```java import java.io.File; import java.io.FileNotFoundException; import java.util.Scanner; public class FileReadExample { public static void main(String[] args) { // 创建File对象 File file = new File("example.txt"); try { // 创建Scanner对象读取文件 Scanner scanner = new Scanner(file); // 逐行读取 while (scanner.hasNextLine()) { String line = scanner.nextLine(); System.out.println(line); } // 关闭scanner scanner.close(); } catch (FileNotFoundException e) { System.out.println("文件未找到"); } } } ``` 在上述代码中,我们创建了一个名为`FileReadExample`的类,其中`main`方法尝试打开名为`example.txt`的文件。首先,使用File类创建一个File对象,然后创建一个Scanner对象来扫描这个文件。接着,我们使用`hasNextLine()`方法检查是否还有更多行可以读取,并通过`nextLine()`方法逐行读取文件内容。最后,别忘了关闭Scanner对象,释放系统资源。 注意,在实际的编程实践中,我们可能需要考虑文件不存在或无法读取的异常情况,上面的例子中已经通过try-catch结构来处理了`FileNotFoundException`异常。 通过本文的介绍和示例,读者应该已经掌握了使用Java的File类和Scanner类读取文本文件的基本方法。这两者是进行文件操作的常用工具,在Java程序设计中扮演着重要角色。

"C:\Anaconda 3.8\python.exe" C:\Users\D2022\Desktop\h\main.py * Serving Flask app 'models' * Debug mode: off WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead. * Running on http://127.0.0.1:5000 Press CTRL+C to quit C:\Users\D2022\Desktop\h\main.py:95: LegacyAPIWarning: The Query.get() method is considered legacy as of the 1.x series of SQLAlchemy and becomes a legacy construct in 2.0. The method is now available as Session.get() (deprecated since: 2.0) (Background on SQLAlchemy 2.0 at: https://sqlalche.me/e/b8d9) datas = models.User.query.get(stu_id) [2023-06-01 23:57:48,782] ERROR in app: Exception on / [GET] Traceback (most recent call last): File "C:\Anaconda 3.8\lib\site-packages\flask\app.py", line 2190, in wsgi_app response = self.full_dispatch_request() File "C:\Anaconda 3.8\lib\site-packages\flask\app.py", line 1486, in full_dispatch_request rv = self.handle_user_exception(e) File "C:\Anaconda 3.8\lib\site-packages\flask\app.py", line 1484, in full_dispatch_request rv = self.dispatch_request() File "C:\Anaconda 3.8\lib\site-packages\flask\app.py", line 1469, in dispatch_request return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) File "C:\Users\D2022\Desktop\h\main.py", line 100, in index return render_template('projects/table_s.html', datas=datas, results=results) File "C:\Anaconda 3.8\lib\site-packages\flask\templating.py", line 151, in render_template return _render(app, template, context) File "C:\Anaconda 3.8\lib\site-packages\flask\templating.py", line 132, in _render rv = template.render(context) File "C:\Anaconda 3.8\lib\site-packages\jinja2\environment.py", line 1301, in render self.environment.handle_exception() File "C:\Anaconda 3.8\lib\site-packages\jinja2\environment.py", line 936, in handle_exception raise rewrite_traceback_stack(source=source) File "C:\Users\D2022\Desktop\h\templates\projects\table_s.html", line 1, in top-level template code {% extends 'projects/base.html' %} File "C:\Users\D2022\Desktop\h\templates\projects\base.html", line 140, in top-level template code {% block content %} {% endblock %} File "C:\Users\D2022\Desktop\h\templates\projects\table_s.html", line 48, in block 'content' {{resu.jingdian | jiequ(20)}} File "C:\Users\D2022\Desktop\h\main.py", line 156, in jiequs if len(li) < num: TypeError: object of type 'NoneType' has no len() 127.0.0.1 - - [01/Jun/2023 23:57:48] "GET / HTTP/1.1" 500 -

252 浏览量