A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘立波 中级黑马   /  2012-10-18 21:37  /  2306 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. import java.io.File;
  2. import java.io.FileInputStream;

  3. public class Test8 {
  4. public static void main(String[] args) {
  5. FileInputStream fis = null;
  6. try {
  7. File file = new File("bin/exercise.txt");
  8. fis = new FileInputStream(file);
  9. byte[] b = new byte[(int) file.length()];
  10. while (fis.read(b) != -1) {
  11. }
  12. System.out.println(new String(b));
  13. } catch (Exception e) {
  14. e.printStackTrace();
  15. }
  16. }
  17. }
复制代码
题目的要求是:定义一个文件输入流,调用read(byte[] b)方法将exercise.txt文件中的所有内容打印出来(byte数组的大小限制为5)。
请问应该怎样实现?

评分

参与人数 1技术分 +1 收起 理由
韩军博 + 1 很给力!

查看全部评分

3 个回复

倒序浏览
public class A {

        public static void main(String[] args) {
         
          FileInputStream fis = null;
          FileOutputStream fos = null;
         
          try {
         
              File file = new File("bin/exercise.txt");
              File file2 = new File("bin/exercise2.txt");
         
              fis = new FileInputStream(file);
              fos= new FileOutputStream(file2);
         
              byte[] b = new byte[5];
              int num=0;
              while ((num=fis.read(b)) != -1) {
                 fos.write(b, 0, num);
              }
           } catch (Exception e) {
              e.printStackTrace();
           }
           finally
           {
                    try {
                           if(fis!=null){
                                   fis.close();
                           }
                        } catch (Exception e) {
                                e.printStackTrace();
                        }
                        try {
                                   if(fos!=null){
                                           fos.close();
                                   }
                        } catch (Exception e) {
                                        e.printStackTrace();
                        }
           }
        }
}

评分

参与人数 1技术分 +1 收起 理由
韩军博 + 1 很给力!

查看全部评分

回复 使用道具 举报
class TestDemo1
{
        public static void fileInputMethod()throws IOException
        {
                BufferedInputStream buffis
                        = new BufferedInputStream(new FileInputStream("ArraysDemo.java"));
                int len = 0;
                byte[] buf = new byte[5];                  //定义一个大小为5的字节数组
                while((len = buffis.read(buf))!=-1)        // read每次都会从文件中取出5个字节放到数组中,直到最后返回-1时才停止。
                {
                        System.out.print(new String(buf,0,len)); //注意此处用print而不是println
                }
                buffis.close();
        }
        public static void main(String[] args) throws IOException
        {
                fileInputMethod();
        }
}
回复 使用道具 举报
C#中读取文件内容本文分步介绍了如何从文本文件 (.txt) 检索信息,然后使用 ArrayList 类向用户显示该信息。要求Microsoft Visual C# 2005 或 Microsoft Visual C# .NET在 Visual C# 2005 或 Visual C# .NET 中读取文本文件打开和读取文件进行读取访问是输入/输出 (IO) 功能的一个非常重要的部分,即使您不需要写入到相关文件,也是如此。本示例打开一个文件进行读取,这适用于读取文本文件,但不适用于读取二进制文件。本示例使用多个可用于打开文件的方法之一。虽然很多数据结构都可以用于存储从文件中检索到的信息,但是,ArrayList 类是使用最简便的结构。为打开并读取文件,本示例使用了 System.IO 命名空间中的对象,尤其是 System.IO.StreamReader 类。注意:本示例需要某种形式的文本文件 (.txt) 以从中进行读取。要在 Visual C# 2005 或 Visual C# .NET 中加载和读取文本文件,请按照下列步骤操作: 1. 启动 Microsoft Visual Studio 2005 或 Microsoft Visual Studio .NET。 2. 在 Visual C# 中创建一个新的控制台应用程序。Visual Studio 会为您创建一个 Static Class 和一个空的 Main() 过程。 3. 确保项目至少引用了 System 命名空间。对 System、System.IO 和 System.Collections 命名空间使用 using 语句,这样以后就无需在代码中限定这些命名空间中的声明。这些语句必须位于任何其他声明之前。using System;using System.IO;using System.Collections;4. 要打开一个文件以进行读取,请创建 StreamReader 对象的一个新实例,并将该文件的路径传递到构造函数中,如下所示:StreamReader objReader = new StreamReader("c:\\test.txt");5. 您必须使用字符串变量,以便处理时将文件的每一行存储到该变量中。由于要向 ArrayList 中添加这些行,因此还需声明并创建一个此类型的对象。string sLine="";ArrayList arrText = new ArrayList();6. 读取该文件有很多种方法,其中包括一次性读取整个文件的 ReadToEnd 方法。但在本示例中,可以使用 ReadLine 方法每次只读取文件中的一行。当到达文件结尾时,此方法返回空值,这可以用于结束循环。在读取文件中的每一行时,可以使用 ArrayList 的 Add 方法将这些行插入 ArrayList 类中。while (sLine != null){sLine = objReader.ReadLine();if (sLine != null)   arrText.Add(sLine);}objReader.Close();7. 使用 For Each 循环将新填充的 ArrayList 内容写入控制台,如下所示:foreach (string sOutput in arrText)Console.WriteLine(sOutput);Console.ReadLine();8. 保存并运行您的代码,它将向控制台生成文件的内容列表。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马