如何使用Java文件流将“E:kj.txt”文件中的内容读取并输出到控制台?

如何使用Java文件流将“E:kj.txt”文件中的内容读取并输出到控制台?,第1张

文件位置替换成你的就可以了

import java.io.FileInputStream

import java.io.FileNotFoundException

import java.io.FileOutputStream

import java.io.IOException

public class HelloWorld  {

public static void main(String[] args) throws IOException {

FileInputStream fs = new FileInputStream("E:\\22.txt")

byte[] buf = new byte[1024*20]

int k = fs.read(buf, 0, buf.length)

System.out.println(new String(buf))

}

}

//java中使用文件输入流和文件输出流进行文件读写的用例!           

Java 

   package com.test.io 

import java.io.File 

import java.io.FileInputStream 

import java.io.FileNotFoundException 

import java.io.FileOutputStream 

import java.io.IOException 

import java.io.InputStream 

import java.io.OutputStream 

/** 

 *  

 * @author 亚当爱上java 

 * 用例内容:文件输入流和文件输入流结合用例,字节流方式 

* 时间:2010-06-20 

 * 注意事项:文件输入流和文件输出流都是相对与内存来说的,例如通过程序读取文件时往内存输入数据就是文件输入流 

*/ 

public class FileInputOrOutput { 

 public static void main(String[] args) { 

  // 文件或者路径名的抽象表现形式,意思就是说之后如果进行 *** 作的话就是全部在这个抽象路径名所指向的文件或者文件加中 

  File file = new File("e:/test.txt") 

  File file2 = new File("e:/test1.txt") 

   

  // 文件字节数的个数 

  // System.out.println(file.length()) 

  try { 

   /*------------------------------------------读 *** 作部分-----------------------------------------------*/ 

   //文件输入流对象 

   InputStream fis = new FileInputStream(file) 

   // 文件输入流对象所读取的字节数大小 

   // System.out.println(fis.available()) 

   /** 

    * 1.按照一个字节为单位进行读取数据,弊端是遇到中文就会把中文的汉字拆开从而出现乱码 

    */ 

   // //流对象读出的返回值是每次所读到的一个字符所对应的ascii码值 

   // int i = fis.read() 

   //    

   // //如果已经读到文件尾则i==-1,此时终止循环 

   // while(i!=-1){ 

   // System.out.print((char)i) 

   // 保证每一次循环都继续往后读取一个字符,否则i的值不变会成为死循环 

   // i = fis.read() 

   // } 

   /** 

    * 2.按照一个字节数组所指定的大小为单位进行读取,每次最多可以读取数组定义的大小的字节个数 

    */ 

   // 每次读取都以1K字节作为单位来进行 

   byte b[] = new byte[1024] 

   // 流对象读出并返回的是每次读取字节的个数,最大每次读取自己数可以和数组b.length相同 

   // b中存储了每次所读取的所有数据 

   int i = fis.read(b) 

   String str = "" 

   // 如果已经读到文件尾则i==-1,此时终止循环 

   while (i != -1) { 

    // 把每次读取的字节数组解码为字符串 

    // 参数1:要解码为字符的字节 

    // 参数2:要解码的首字符的索引 

    // 参数3:要解码的字节的个数,如果文件个数大于所设定的一次读取文件的大小时i的取值就是 

    // b.length,否则小于数组的字节大小时则为实际的读取出自己数的大小 

    str = str + new String(b, 0, i) 

    // 保证每一次都往文件的下一部分进行读取,否则i值没有变化会成为死循环 

    i = fis.read(b) 

   } 

   // System.out.print(str) 

   // 关闭输入流对象 

   fis.close() 

   

   /*------------------------------------------写 *** 作部分-----------------------------------------------*/ 

   //文件输出流对象 

   OutputStream fos = new FileOutputStream(file2) 

    

   //str是从file所指定的文件中读出的所有内容,将此内容写入另一个文件中 

   //将字符解码为字节数组 

   byte b2[] = str.getBytes() 

    

   //将解码后的字节数组,通过文件输出流对象写入到缓冲区中 

   fos.write(b) 

   //强制将缓冲区中的内容输出到文件中 

   fos.flush() 

   //关闭输出流对象 

   fos.close() 

    

  } catch (FileNotFoundException e) { 

   // TODO Auto-generated catch block 

   e.printStackTrace() 

  } catch (IOException e) { 

   // TODO Auto-generated catch block 

   e.printStackTrace() 

  } 

 } 

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11727676.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存