要从文件中读入文本

要从文件中读入文本,有两个问题需要解决:

1、怎么打开文件并读该文件。

2、怎么将读入的文本放置到类似TBuf这样的东西中。

下面看一个程序片段:

 RFs fs;
 User::LeaveIfError(fs.Connect());

 RFile file;
 User::LeaveIfError(file.Open(fs, _L("e://1.txt"), EFileRead));
 
 TInt sz;
 file.Size( sz);
 TBuf16<20> sz_str;
    sz_str.Format( _L( "%d" ) , sz);
 
 TBuf8< 2> buf;
 for( int i = 0; i < sz / 2; i ++)
 {
  TBuf16< 1> c;
  file.Read( buf, 2);
  c.Copy( ( unsigned short int *)buf.Ptr(), 1);
  iCNTextShowContainer->AddText( c);
 }
 file.Close();
 fs.Close();

读文件很简单,见上面的程序应该可以看懂。

RFile只提供了一个读入8位字节类型的read方法,而unicode是16位的,这就牵扯到了一个将两个8位字节转换成一个unicode码的问题,上面程序中Copy( ( unsigned short int *)buf.Ptr(), 1);就完成这个工作。具体过程就是:得到文件大小字节数,包含的文字数量为大小的二分之一,然后循环读入字节,一次读入两个字节,通过Copy方法把这两个字节转换成一个unicode码,放入到TBuf16中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Java读取文本文件的常用方法之一是使用 Java I/O 类库的 `BufferedReader` 类。下面是一个示例代码,它展示了如何从文件 "input.txt" 读取文本: ``` import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; public class Main { public static void main(String[] args) { BufferedReader reader = null; try { reader = new BufferedReader(new FileReader("input.txt")); String line; while ((line = reader.readLine()) != null) { System.out.println(line); } } catch (IOException e) { e.printStackTrace(); } finally { if (reader != null) { try { reader.close(); } catch (IOException e) { e.printStackTrace(); } } } } } ``` 在这段代码,我们首先使用 `FileReader` 类来打开文件 "input.txt",然后使用 `BufferedReader` 类来读取文件文本。我们使用 `while` 循环来逐行读取文件,直到文件末尾。每一行的文本都会被打印到控制台上。 注意,在这段代码,我们使用了 `try-catch-finally` 结构来处理可能发生的异常。在这种情况下,我们需要处理的异常是 `IOException`,它可能在打开文件或读取文件时发生。在 `finally` 块,我们关闭 `BufferedReader` 对象,以确保文件被正确关闭。 ### 回答2: 在Java,要从文本文件读取数据,我们可以使用文件输入流(FileInputStream)和字符输入流(FileReader)。 使用FileInputStream来读取文本文件的步骤如下: 1. 创建一个FileInputStream对象,并指定要读取的文本文件的路径。 2. 创建一个字节数组来存储读取到的数据。 3. 调用read()方法读取数据,并将读取到的字节数保存在字节数组。 4. 使用String的构造方法将字节数组转换成字符串。 5. 打印或者处理字符串。 使用FileReader来读取文本文件的步骤如下: 1. 创建一个FileReader对象,并指定要读取的文本文件的路径。 2. 创建一个字符数组来存储读取到的数据。 3. 调用read()方法读取数据,并将读取到的字符数保存在字符数组。 4. 使用String的构造方法将字符数组转换成字符串。 5. 打印或者处理字符串。 这是一个简单的代码示例,用于从文本文件读取数据并打印出来: ```java import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; public class ReadFromFile { public static void main(String[] args) { String fileName = "path/to/your/textfile.txt"; try (BufferedReader reader = new BufferedReader(new FileReader(fileName))) { String line; while ((line = reader.readLine()) != null) { System.out.println(line); } } catch (IOException e) { e.printStackTrace(); } } } ``` 在这个例子,我们使用BufferedReader来读取文件内容,并使用readLine()方法逐行读取文件数据。通过循环读取直到文件的末尾,然后将每一行数据打印出来。 请将"path/to/your/textfile.txt"替换成实际的文本文件的路径。 ### 回答3: Java程序可以使用File类和Scanner类来从文本文件读入数据。 首先,我们需要使用File类来表示文件对象,通过创建一个File对象来指定要读取的文件路径和文件名。例如:File file = new File("C:\\example.txt"); 接下来,我们可以使用Scanner类来读取文件的数据。Scanner类提供了读取不同类型数据的方法,比如读取整数、浮点数、字符串等。我们可以使用Scanner类的构造函数来将File对象作为参数,创建一个Scanner对象,如:Scanner scanner = new Scanner(file); 然后,我们可以使用Scanner对象的方法来逐行读取文件的数据。例如,我们可以使用nextLine()方法来读取一行数据,并将其赋值给一个字符串变量。然后我们可以对这个字符串进行处理或输出。例如:String line = scanner.nextLine(); 最后,我们需要记得在读取完文件后关闭文件。我们可以使用Scanner类的close()方法来关闭文件。如:scanner.close(); 总结来说,Java程序从文本文件读入数据的大致步骤是:创建一个File对象表示要读取的文件,使用Scanner类的构造函数将File对象作为参数创建一个Scanner对象,使用Scanner对象的方法来逐行读取文件的数据,对读取的数据进行处理或输出,最后关闭文件。 以上是一个简单的例子来说明如何从文本文件读取数据,实际应用可能需要处理各种不同格式的文本文件,需要根据具体情况进行适当的调整和处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值