zoukankan      html  css  js  c++  java
  • 文件 I/O字节流

    输入字节流:

    import java.io.*;
    
    public class test_main {
    
    	public static void main(String[] args) {
    		
    		int n=-1;
    		byte []a = new byte[100];
    
    		try {
    			File f = new File("Example10_4.java");
    /*File类文件和目录路径名的抽象表示
    *File(String pathname)通过将给定的路径名字符串转换
    为抽象路径名来创建新的 File实例。*/  
    			InputStream in = new FileInputStream(f);
    /******************************************
    *InputStream 抽象类是表示输入字节流所有类的超类     
    *FileInputStream 用于读取诸如图像数据的原始字节流
    *FileInputStream(File file)通过打开与实际文件 
      的连接创建一个 FileInputStream ,该文件由文件系统
      中的 File对象 file命名。                                                  
    ******************************************/
    			while((n=in.read(a,0,100))!=-1){
    /* int read(byte []b,int off,int len)
     * b - 读取数据的缓冲区,off - 写入数据的数组 b中的起始偏移量。
     * len - 要读取的最大字节数。 
     * 从输入流读取len字节的
     * 数据到一个字节数组。实际读取的字节数作为整数返回。 
     * 该方法阻塞直到输入数据可用,检测到文件结束或抛出异常。 
     * 如果len为零,则不会读取字节并返回0; 
     * 否则,尝试读取至少一个字节。 如果没有字节可用,因为流是文件的-1则返
     * 回值-1 ; 否则,读取至少一个字节并存储到b 。
     *  
     * */
    				String s = new String(a,0,n);
    //		String(byte[] bytes, int offset, int length)
    //		bytes - 要解码为字符的字节 
    //		offset - 要解码的第一个字节的索引 
    //		length - 要解码的字节数 
    //		通过使用平台的默认字符集解码指定的字节子阵列来构造新的String。
    //		新的String的长度是字符集的函数,因此可能不等于子数组的长度。
    //		指定字节在默认字符集中无效时,此构造函数的行为是未指定的。
    	            System.out.print(s);
    			}
    			in.close();
    /*public void close()throws IOException
    关闭此输入流并释放与流相关联的任何系统资源。
    该close的方法InputStream什么都不做。
    IOException异常类
    表示发生某种类型的I / O异常。 
    此类是由失败或中断的I / O操作产生的一般异常类。 */ 	
    		}
    		catch(IOException e) {
    			System.out.println("File read Error"+e);
    		}
    	}
    
    }
    

    输出字节流:

    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.OutputStream;
    
    public class test_main {
    
    	public static void main(String[] args) {
    		// TODO 自动生成的方法存根
    		byte[] a="新年快乐".getBytes();
    		byte[] b="Happy New Year".getBytes();
    /*		使用平台的默认字符集将该String编码为一系列字节,
    		将结果存储到新的字节数组。*/
    		File file = new File("a.txt");
    		/*文件和目录路径名的抽象表示
    		通过将给定的路径名字符串转换为抽象路径名来创建新的File实例。
    		如果给定的字符串是空字符串,则结果是空的抽象路径名。
    		参数-pathname-路径名字符串
    		异常NullPointerException-if patchname==null*/
    		System.out.println(file.getAbsolutePath());
    		try {
    			OutputStream out = new FileOutputStream(file);
    			/*OutputStream这个抽象类是表示字节输出流的所有类的超类
    			FileOutputStream文件输出流是用于将数据写入File或
    			FileDescriptor的输出流。用于写入诸如图像数据的原始
    			字节流。*/
    			System.out.println(file.getName()+"的大小:"
    					+file.length()+"字节");
    //			getName返回此抽象路径名标识的文件或目录的名称
    			out.write(a);
    //			将b.lenth字节从指定的字节数组写入此文件输出流
    			out.close();
    //			关闭此文件输出流并释放与此流相关联的任何系统资源
    			out = new FileOutputStream(file,true);
    			/*创建文件输出流以写入由指定的File对象表示的文件
    			如果第二个参数为true,则字节将写入文件的末尾而
    			不是开头。*/
    			System.out.println(file.getName()+"的大小:"
    					+file.length()+"字节");
    			out.write(b,0,b.length);
    			/*将len字节从指定的字节数组开始,从偏移量off开始写入此
    			文件输出流*/
    			System.out.println(file.getName()+"的大小:"
    					+file.length()+"字节");
    			out.close();
    		}
    		catch(IOException e) {
    			System.out.println("Error "+e);
    		}
    		System.out.println(file.getAbsolutePath());
    	}
    
    }
    


  • 相关阅读:
    记周日一次故障意外
    每周一坑-【3月第1周】
    关于计划任务的一个小需求-优化篇
    400篇博客的一个里程碑
    关于计划任务的一个小需求-实现篇
    关于计划任务的一个小需求
    微服务优雅停机研究
    NSUInteger设为负数
    Mac上运行第一个Flutter项目
    Vue filtersfilter、computed、methods、watch对比
  • 原文地址:https://www.cnblogs.com/WALLACE-S-BOOK/p/9732327.html
Copyright © 2011-2022 走看看