zoukankan      html  css  js  c++  java
  • IO_FileInputStream&FileOutputStream


    通过available()方法实现不阻塞输入流

    		FileInputStream fis = new FileInputStream(f);
    		try {
    			//通过available()方法可以实现不阻塞流
    			byte[] b = new byte[fis.available()];
    			int result = 0;
    			while((result = fis.read(b)) != -1) {
    				System.out.println(new String(b, "utf-8"));
    			}
    		
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		fis.close();
    

    读取文件

    import java.io.File;
    import java.io.FileInputStream;
    import java.io.IOException;
    
    public class FileInputStreamJava {
    
    	public static void main(String[] args) throws IOException {
    		// TODO Auto-generated method stub
    		String strFile = "d:" + File.separator + "javatest" + File.separator + "IO_RandomAccessFileTest.txt";
    		File f = new File(strFile);
    		FileInputStream fis = new FileInputStream(f);
    		byte[] b = new byte[1024];
    		int result = 0;
    		while((result = fis.read(b)) != -1) {
    			//数组b固定大小1024,所以如果读到的数据不足,数组会自动填满,输出的时候结尾就可能会出现乱码
    			//下面这种方式就出现了乱码
    			//System.out.println(new String(b, "utf-8"));
    			//现在这样就不会出现乱码了,重新组装成字符串的时候确定了最后一个字符串的byte数组大小
    			System.out.println(new String(b,0,result, "utf-8"));
    		}
    		fis.close();
    	}
    }
    

    每次读一个字节

    public class FileInputStreamJava {
    
    	public static void main(String[] args) throws IOException {
    		// TODO Auto-generated method stub
    		String strFile = "d:" + File.separator + "javatest" + File.separator + "IO_RandomAccessFileTest.txt";
    		File f = new File(strFile);
    		FileInputStream fis = new FileInputStream(f);
    		//byte[] b = new byte[1024];
    		int result = 0;
    		while((result = fis.read()) != -1) {
    			//数组b固定大小1024,所以如果读到的数据不足,数组会自动填满,输出的时候结尾就可能会出现乱码
    			//下面这种方式就出现了乱码
    			//System.out.println(new String(b, "utf-8"));
    			//现在这样就不会出现乱码了,重新组装成字符串的时候确定了最后一个字符串的byte数组大小
    			System.out.print((char)result);
    		}
    		fis.close();
    	}
    }
    

    写数据

    import java.io.File;
    import java.io.FileOutputStream;
    
    public class FileOutputStreamJava {
    
    	public static void main(String[] args) throws Exception {
    		// TODO Auto-generated method stub
    		String strFile = "d:" + File.separator + "javatest" + File.separator + "IO_RandomAccessFileTest.txt";
    		File f = new File(strFile);
    		//true,将字节写入文件末尾处,而不是写入文件开始处 
    		FileOutputStream fos = new FileOutputStream(f, true);
    		//  
    是windows系统的换行符
    		byte[] b = "
    写出数据...".getBytes();
    		fos.write(b);
    		fos.close();
    	}
    
    }
    
  • 相关阅读:
    Vue部署到相对目录和解决刷新404的问题
    JavaScript时间格式转换
    在Vue中使用Chart.Js
    进制转换和大数除法
    esp8266必备知识
    php 添加 freetype支持
    Linux系统时间同步问题
    busybox date 时间的加减
    kubesphere-wokespaces
    添加系统环境变量
  • 原文地址:https://www.cnblogs.com/changzuidaerguai/p/9276005.html
Copyright © 2011-2022 走看看