精华内容
下载资源
问答
  • Java流

    千次阅读 热门讨论 2014-04-18 16:22:59
    是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为的本质是数据传输,根据数据传输特性将抽象为各种类,方便更... J2SDK所提供的所有类型位于包java.io内

           流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。

    流的分类:

          数据类型:字节流、字符流

          数据方向:输入流、输出流

          数据功能:节点流、处理流

    流的四个抽象类:

           J2SDK所提供的所有流类型位于包java.io内部,分别继承自一下四种抽象流类型。

           InputStream 、OutputStream、Reader、Writer

           

           其中InputStream和OutputStream是字节流,处理的时候是通过输入或输出字节形式的;Reader和Writer是通过字符来处理的,读取或写入每个字符。在java中输入输出写入读取是从程序的方向上去辨别的。

    那么什么是节点流和处理流呢?

            节点流:从一个特定的数据源读写数据,这个数据源可以使文件、内存等。

                        

            处理流:是连接在已经存在的流(节点流或者处理流)之上,通过对数据的处理为程序提供更加强大的读写功能。

                          

            举个例子:比如说我们从某个文件中读取数据我们把这个文件当做一个大桶,我们现在用个管道直接连接在这个大桶上进行抽水此时这根管道就是节点流;当我们感觉这个管道不够我们抽水用的了,我们在其外面套上一个大的抽水管道,此时这个大的管道就相当于处理流。

    InputStream和OutputStream

       

    Reader和Writer


    实例一:

            以下面两个实例来分析这四个抽象类。

            用FileInputStream与FileOutputStream,可以复制文件,即它会先从来源文件b.txt读取数据至一个byte数组中,然后再将byte数组的数据写入目的文件a.txt。

            先在D盘根目录下建立两个a.txt和b.txt,在b.txt中写入“Java学习之旅!!!”,然后建立程序:

    import java.io.*;
    public class Demo {
        public static void main(String[] args) {
            try {
               // 来源文件
                FileInputStream in = new FileInputStream("D:/b.txt");
                // 目的文件
                FileOutputStream out = new FileOutputStream("D:/a.txt");
                byte[] bytearray = new byte[1024];
                do {
                    in.read(bytearray, 0, 1024);
                   out.write(bytearray);
                } while (in.available() > 0);
                in.close();
                out.close();
            } catch (ArrayIndexOutOfBoundsException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
          运行此程序后,打开a.txt,你会发现a.txt同b.txt一样。

          程序中示范了两个read()方法,一个方法可以读入指定长度的数据至数组,另一个方法一次可以读入一个字节.每次读取之后,读取的光标都会往前进,如果读不到数据刚返回-1.使用available()方法可以获得还有多少字节可以读取。
      在不使用文件流时,记得使用close()方法自行关闭流,以释放与流相依的系统资源。

      FileOutputStream默认会以新建文件的方式来开启流。如果指定的目标文件名称已经存在,则会被覆盖目标文件,即此时的a.txt。

      FileInputStream读取文件时,如果此时源文件不存在,则会提示文件不存在,即提示b.txt不存在。

    实例二:

          实现效果与上例相同

          IO流中的BufferedInputStream与BufferedOutputStream可以为InputStream、OutputStream类的对象增加缓冲区功能,构建BufferedInputStream实例时,需要给定一个InputStream类型的实例,实现BufferedInputStream时,实际上最后是实现InputStream实例。同样地,在构建BufferedOutputStream时,也需要给定一个OutputStream实例,实现BufferedOutputStream时,实际上最后是实现OutputStream实例。

    import java.io.*;
    public class Demo1 {
        public static void main(String[] args) {
            try {
                // 来源文件
                FileInputStream in = new FileInputStream("D:/b.txt");
                // 目的文件
                FileOutputStream out = new FileOutputStream("D:/a.txt");
                BufferedInputStream bufferedIn = new BufferedInputStream(in);
                BufferedOutputStream bufferedOut = new BufferedOutputStream(out);
                byte[] data = new byte[1];
                while (bufferedIn.read(data) != -1) {
                    bufferedOut.write(data);
                }
                //将缓冲区中的数据全部写出
                bufferedOut.flush();
                //关闭流
                bufferedIn.close();
                bufferedOut.close();
            } catch (ArrayIndexOutOfBoundsException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    总结

         输入流向从里面读取数据,输出流向其中写入数据,正是有了这些输入和输出流,才有了文件的上传下载,网络的链接,图片的复制粘贴等。java流,需要自己更多的去体会和理解。


    关于J2SE的总结结束了。以下是我在学习J2SE时的一系列总结。
             Java异常处理
             Java常用类
             Java容器
             Java流

    展开全文
  • Java流(Stream)操作实例-筛选、映射、查找匹配

    万次阅读 热门讨论 2017-11-24 15:26:57
    Java流(Stream)操作实例-筛选、映射、查找匹配

    准备工作

    构建一个测试类,通过测试类先初始化一个数据源,具体如下。

    public class TestObject {
    	private String name;
    	private String sex;
    	private int age;
    	private String email;
    	private boolean isMng;
    	
    	public TestObject() {
    	}
    	
    	public TestObject(String name,String sex,int age,String email,boolean isMng){
    		this.name=name;
    		this.sex=sex;
    		this.age=age;
    		this.email=email;
    		this.isMng=isMng;
    	}
    //... ...get、set方法就不贴出来了,多又麻烦
    }
    

    在测试类中定义初始化数据源

    public class StreamOperation {
    	static List<TestObject> list = Arrays.asList(
    			new TestObject("Ron","M",10,"ron.zheng@tfschange.com",false),
    			new TestObject("KDS","W",10,"kds@qq.com",false),
    			new TestObject("BoDuo","W",30,"boduo@163.com",false),
    			new TestObject("CangJin","W",10,"cangjin@gmail.com",false),
    			new TestObject("XiaoZe","W",30,"xiaoze@hotmail.com",true),
    			new TestObject("James","M",10,"leblonjames@hotmail.com",true),
    			new TestObject("Allen","M",50,"allen.lei@tfschange.com",true),
    			new TestObject("Smith","M",10,"jr.smith@cel.com",true),
    			new TestObject("Wade","M",20,"dw.wade@cel.com",true),
       new TestObject("Wade","M",20,"dw.wade@cel.com",false)
    			);
    //... ...流操作
    }
    

    用谓词筛选

    Streams接口支持filter方法,该操作会接受一个谓词(一个返回boolean的函数)作为参数,并返回一个包括所有符合谓词的元素的流。比如我们需要筛选isMng为ture的数据并打印名字就可以按照如下的方式处理。

    /**
    	 * @Comment 获取Leader
    	 * @Author Ron
    	 * @Date 2017年11月24日 下午2:01:16
    	 * @return
    	 */
    	public static List<TestObject> getLeader() {
    		return list.stream().filter(TestObject::isMng).collect(Collectors.toList());
    	}
    	
    	public static void main(String[] args) {
    		List<TestObject> leaders = getLeader();
    		leaders.stream().forEach(leader->System.out.println(leader.getName()));
    	}
    

    筛选各异的元素

    流还支持一个叫作distinct的方法,它会返回一个元素各异(根据流所生成元素的hashCode和equals方法实现)的流。例如,以下代码会筛选出列表中所有的偶数,并确保没有重复。

    public static void main(String[] args) {
    		List<Integer> numbers = Arrays.asList(1, 2, 1, 3, 3, 2, 4);
    		numbers.stream().filter(i -> i % 2 == 0).distinct().forEach(System.out::println);
    	}
    

    截短流

    流支持limit(n)方法,该方法会返回一个不超过给定长度的流。所需的长度作为参数传递给limit。如果流是有序的,则最多会返回前n个元素。比如选出前5个sex为M的对象并打印其名称可以按如下的代码操作。

    list.stream().filter(u->u.getSex().equals("M")).limit(5).forEach(u->System.out.println(u.getName()));
    

    如果我们需要选出前5个sex为M的对象并按照名称排序之后打印其名称可以按如下的代码操作。

    list.stream()
    		.filter(u->u.getSex().equals("M"))
    		.limit(5)
    		.sorted(Comparator.comparing(TestObject::getName))
    		.forEach(u->System.out.println(u.getName()));
    

    跳过元素

    流还支持skip(n)方法,返回一个扔掉了前n个元素的流。如果流中元素不足n个,则返回一个空流。请注意, limit(n)和skip(n)是互补的。例如,下面的代码将会跳过筛选出来的第一个元素并打印名字。

    list.stream()
    		.filter(u->u.getSex().equals("M"))
    		.sorted(Comparator.comparing(TestObject::getName))
    		.skip(1)
    		.forEach(u->System.out.println(u.getName()));
    

    对流中每一个元素应用函数

    流支持map方法,它会接受一个函数作为参数。这个函数会被应用到每个元素上,并将其映射成一个新的元素(使用映射一词,是因为它和转换类似,但其中的细微差别在于它是“创建一个新版本”而不是去“修改”)。例如,下面的代码把方法引用TestObject::getName传给了map方法,来提取流中用户的名称并打印:

    list.stream()
    .map(TestObject::getName)
    .collect(Collectors.toList())
    .forEach(System.out::println);
    

    因为getName方法返回一个String,所以map方法输出的流的类型就是Stream⁢String>。

    我们来再看一个例子,我们把方法引用TestObject::getName传给了map方法,来提取流中用户的名称,然后再打印用户名称的长度。你可以像下面这样,给map传递一个方法引用String::length来解决这个问题:

    list.stream()
    		.map(TestObject::getName)
    		.map(String::length)
    		.collect(Collectors.toList())
    		.forEach(System.out::println);
    

    检查谓词是否至少匹配一个元素

    anyMatch方法可以回答“流中是否有一个元素能匹配给定的谓词”。比如,你可以用它来看看用户列表里面是否有名称为Ron的对象可选择:

    if(list.stream().anyMatch(u->u.getName().equals("Ron"))){
    		System.out.println("Ron已经到了");
    	}
    

    anyMatch方法返回一个boolean,因此是一个终端操作。

    检查谓词是否匹配所有元素

    allMatch方法的工作原理和anyMatch类似,但它会看看流中的元素是否都能匹配给定的谓词。比如,你可以用它来看看用户是否都大于10岁。

    if(list.stream().allMatch(u->u.getAge()>=10)){
    		System.out.println("很棒,都大于10岁");
    	}else{
    		System.out.println("原来都还没发育");
    	}
    

    和allMatch相对的是noneMatch。它可以确保流中没有任何元素与给定的谓词匹配。比如,你可以用noneMatch重写前面的例子:

    if(list.stream().noneMatch(u->u.getAge()<10)){
    		System.out.println("很棒,都大于10岁");
    	}else{
    		System.out.println("原来都还没发育");
    	}
    

    anyMatch、 allMatch和noneMatch这三个操作都用到了我们所谓的短路,这就是大家熟悉的Java中&&和||运算符短路在流中的版本。

    Optional简介

    Optional<T>类(java.util.Optional)是一个容器类,代表一个值存在或不存在。Java 8的库设计人员引入了Optional<T>,这样就不用返回众所周知容易出问题的null了。Optional里面几种可以迫使你显式地检查值是否存在或处理值不存在的情形。

    • isPresent()将在Optional包含值的时候返回true, 否则返回false。
    • ifPresent(Consumer block)会在值存在的时候执行给定的代码块。
    • T get()会在值存在时返回值,否则抛出一个NoSuchElement异常。
    • T orElse(T other)会在值存在时返回值,否则返回一个默认值。

    查找元素

    findAny方法将返回当前流中的任意元素。它可以与其他流操作结合使用。

    例如,我们需要显示的检查是否存在一个名为‘Ron’的人并显示其名称就可以按照如下的代码操作。

    list.stream()
    		.filter(u->u.getName().equals("Ron"))
    		.findAny()
    		.ifPresent(u->System.out.println(u.getName()));
    

    流水线将在后台进行优化使其只需走一遍,并在利用短路找到结果时立即结束。

    查找第一个元素

    有些流有一个出现顺序(encounter order)来指定流中项目出现的逻辑顺序(比如由List或排序好的数据列生成的流)。对于这种流,你可能想要找到第一个元素。为此有一个findFirst方法,它的工作方式类似于findany。

    例如我们需要找到第一个isLeader为ture的对象并打印其名字,就可以按照如下的代码操作。

    list.stream()
    		.filter(u->u.isLeader())
    		.findFirst()
    		.ifPresent(u->System.out.println(u.getName()));
    

    何时使用findFirst和findAny

    你可能会想,为什么会同时有findFirst和findAny呢?答案是并行。找到第一个元素在并行上限制更多。如果你不关心返回的元素是哪个,请使用findAny,因为它在使用并行流时限制较少。

    参考:Java8实战

    展开全文
  • Java流机制详解

    千次阅读 多人点赞 2016-05-11 21:36:48
    Java流分为三类: 1.按照处理数据大小:字节流和字符流 2.按照流的方向:输入流和输出流 3.按照功能分为:分为节点流和处理流 字节流和字符流: 1)字节流:读取的数据以字节为单位(byte),8bit,我们要与...

     

    流即数据的流向,即数据的输入/输入方向。可以是文件,内存,硬盘的其他的设备。

    Java流分为三类:
    1.按照处理数据大小:字节流和字符流
    2.按照流的方向:输入流和输出流
    3.按照功能分为:分为节点流和处理流

    字节流和字符流:
        1)字节流:读取的数据以字节为单位(byte),8bit,我们要与InputStream,OutputStream(抽象类)相关联。
           当我们读取文件然后在写入到其它的文件时候,不用过多的关注读取的内容时,通常使用的是字节流,因为这相当于是在处理二进制文件。读取数据效率高,并且保持数据的完整性。
        2)字符流:读取的数据以字符为单位(char),16bit,我们要与Reader,Reader(抽象类)相关联。
           当我们读取文件的内容,并要对文件的内容进行加工时(修改,判断等),通常是使用的字符流,因为我们读取的其实是按照一个字符。
        读取的,文件的最基本单位是字符,同样保持数据的完整性。

    输入流和输出流:
        1)输入流:是指从流读入数据。
        2)输出流:是指向流写出数据。

    处理流和节点流(重点介绍):

    节点流:即从特定的数据源读取写入数据(FileReader,PrintWriter)。

    处理流:在已经存在的节点流或者处理流上,进行装饰提供更强大的读写功能。

         1)缓冲流(Buffered)顾名思义就是带缓冲区.如:在节点流之上进行加工,添加缓冲区(FileInputStream=>BufferedInputStream)这样避免读取文件时候,大量进行对硬盘的读写,而是从缓冲区进行读写,提高读写效率。

         2)转换流(StreamReader)即字节流与字符流的相互转换。比如:在进行读写字节流设备时候,我想调用读取字符流的函数,就可以通过转换流。将(字节流=>字符流) InputStreamReader in=new InputStreamReader(new InputStream())注意只能是字节流转换为字符流!!

         3) 数据流(Data) 当读取写入具体的数值数据时候(Long Double)就可以采用DataInputStream和DataOutputStream流进行功能更加强大的写入和读取功能。

        下面请看代码:(很多东西都写到代码里面请仔细阅读

            //函数功能:拷贝文件 并在末尾加上helloworld
    	public static void copyTofile(String sorFile,String dirFile) throws IOException{
    		//拷贝文件一般是用字节流不考虑文件内容
    		FileInputStream fin=null;            //节点流
    		FileOutputStream fout=null;
    		BufferedInputStream in=null;         //处理流
    		BufferedOutputStream out=null;     
    		DataOutputStream dout=null;          //处理流
        	try {
        		//处理流在节点流进行装饰,处理流其是对流的功能的加强实现具体的更强大的功能
    			/*
    			 * BufferedInputStream和BufferedOutputStream但缓冲区的输入输出流
    			 * 将文件读取到缓冲区,读取的文件其实就是再跟硬盘在进行交互
    			 * 读取缓冲区,比硬盘的速度加快,效率提高,且避免进行大量的进行硬盘读写
    			 * */
    			fin=new FileInputStream(new File(sorFile));
    			fout=new FileOutputStream(new File(dirFile));
    			in=new BufferedInputStream(fin);
    			out=new BufferedOutputStream(fout);
    			dout=new DataOutputStream(out);
    			byte [] contentArr = new byte[1024];	
    			int fileSize=0;
    			while((fileSize=in.read(contentArr))!=-1){
    				out.write(contentArr,0,fileSize);
    			}
    			System.out.println("copy successfully");
    			dout.writeChars("helloworld");    //写入的是h e l l o w o r l d
    			dout.writeBytes("helloworld");    //写入的helloworld(想一下这里区别 byte char)
    		} catch (FileNotFoundException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		} finally{
    			dout.close();
    			in.close();
    			out.close();
    			fout.close();
    			fin.close();
    		
    		}
        }
    	//函数功能:统计文本中hello个数
    	public static void readFileStream(String sorFile) throws IOException{
    		//拷贝文件一般是用字节流不考虑文件内容
    		//统计文本中hello个数
    		FileInputStream fin=null;            //节点流
    		BufferedReader in=null;              //处理流->缓冲流
            InputStreamReader inStremRead=null;  //处理流->转换流
        	try {
        	    fin=new FileInputStream(new File(sorFile));   //字节流
        	    inStremRead=new InputStreamReader(fin);       //转换流(字节流->字符流)
        	    in=new BufferedReader(inStremRead);           //缓冲流(转换流)
        	    String fileStr=null;
    		    int count=0;
    		    while((fileStr=in.readLine())!=null){
    		    	if(fileStr.contains("hello"))
    		    		count++;
    		    }
    		    System.out.println(count);
    		} catch (FileNotFoundException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		} finally{
    		
    		}
        }
    	
    	//函数功能:统计文本中hello个数
    	public static void countStr(String sorFile) throws IOException{
    		try {
    			//读取文件内容字节流
    			FileReader fin=new FileReader(new File(sorFile));
    		    String fileStr=null;
    		    int count=0;
    		    BufferedReader in=new BufferedReader(fin);
    		    while((fileStr=in.readLine())!=null){
    		    	if(fileStr.contains("hello"))
    		    		count++;
    		    }
    		    System.out.println(count);
    		    
    		} catch (FileNotFoundException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    	}


     

       

    展开全文
  • Java流媒体平台MediaFrame

    千次阅读 2018-11-16 12:11:53
    Java流媒体平台MediaFrame

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

    也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

                   


    MediaFrame是由纯Java实现的流媒体平台,内置MPEG解码器,兼容MPEG-1及MPEG-4标准,它能够将指定的MPEG媒体资源在对应Applet中播放,并且不需要其它本地资源与之配合,音频支持部分包括AAC与MP3。

    项目地址:http://mediaframe.org/

    除非你是想用Java制作专业的影音工具,抑或对流媒体格式或大小存在特殊要求。否则的话,相对陷入万年不更新境界的JMF而言,小巧通用的MediaFrame,就明显可爱得多,无论在何时何地,只要你的JRE能正常运行,那么MediaFrame也同样可以正常运转起来。

     

    很久以前的MediaFrame示例,似乎已经挂了……:

     

    00


    MediaFrame运行效果图:


    00

     

     

    从MediaFrame提供的演示文件上看,似乎此项目的构建本意是作为电影、电视的前期宣传之用,不过嘛……由于大家都知道的某个家伙的存在,此项功能几乎无价值……

    之所以突然说起了MediaFrame组件,是由于暂时没时间写LGame游戏组件部分,突然想看看有没有办法让LGame支持视频的播放(我是既想播放视频,又不想动用jmf抑或jni的家伙),结果在Sourceforge上找了半天把MediaFrame搜了出来。

    事实上,MediaFrame项目近两年已经停止更新,但它提供的纯Java版MPEG解码器却可以利用到其它领域中去,比如偶的LGame……也算死得其所了……

    刚刚偶尝试了一下在LGame内置MediaFrame,由于运作机理类似,结果出乎预料的顺利,很容易就改写成了LGame组件,运行效果也与标准播放器并无二致,放大缩小也很正常。

    运行结果如下图:

     

    00

     

    00

     

    00

     

    PS:此项功能要在0.2.5版发布时才能提供。

    我过一段可能会再加一个FLV解码器和MPEG解码器整合在一起,这样用户选择的余地更大些。另外MediaFrame解码时会占据一定空间,造成其可读取的文件大小事实上受到限制(过大会溢出),偶以后准备修改成写硬盘缓存。事实上这都应该是Sun提供的,JMF也不更新,影音解码器也没人弄(有版权问题的你不做,没版权问题的哥几个倒是添点啊……),什么都没有光让别人空手玩,Java桌面部分哪辈子才能发展起来……

    话说那位大侠用纯Java写过RMVB解码器的,拿出来炫耀一下啊。刚下ffmpeg看了一眼RV10-40的解码,实在不成就慢慢翻译到Java或者以插件形式引入jffmpeg(这玩意是无耻的jni实现,直调ffmpeg……)

               

    给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow

    这里写图片描述
    展开全文
  • JAVA 分为 字节 字符

    千次阅读 2020-07-31 09:25:46
    字符处理的是以2个字节为单元的unicode字符 字符数组 字符串 字节处理的是 字节 字节数组 字节一次操作一个字节 字符一次操作一个缓冲区
  • 【Java 8 新特性】如何将Java流转化成数组1.Using Stream.toArray(IntFunction)2.Using Stream.toArray()3.Using IntStream.toArray()4.Using Collectors.toList()5.参考文献 在本页中,我们将学习如何将Java流...
  • java 流的分类(java流总结一)

    千次阅读 2017-03-09 21:50:17
    是个抽象的概念,是对输入输出设备的抽象,Java程序中,对于数据的输入/输出操作都是以“”的方式进行。设备可以是文件,网络,内存等。 如果数据的流向是程序至设备,我们成为输出,反之我们称为输入。 ...
  • java 概念的理解

    千次阅读 2015-08-05 10:05:49
    java 概念的理解 一、“”的概念  “”是一个抽象的概念,它是对输入输出设备的一种抽象理解,在java中,对数据的输入输出操作都是以“”的方式进行的。“”具有方向性,输入、输出是相对的。当...
  • Java流编程实例之四--管道流

    千次阅读 2016-09-16 19:56:32
    5. 管道流管道流是用来在多个线程之间进行信息传递的Java流,被号称是最难使用的流,被使用的频率也非常低。但事实上,管道流是非常有用的,它提供了多线程间信息传输的一种有效手段。 管道流包括两个类...
  • Java流与文件

    千次阅读 2018-09-02 19:03:25
    Java所有的I/O机制都是基于数据进行输入输出,这些数据表示了字符或者字节数据的流动序列。Java的I/O提供了读写数据的标准方法。任何Java中表示数据源的对象都会提供以数据的方式读写它的数据的方法。 ...
  • Java流操作

    千次阅读 2005-03-19 21:24:00
    Java流操作 Java的流操作分为字节流和字符流两种。1、 字节流所有的读操作都继承自一个公共超类java.io.InputStream类。所有的写操作都继承自一个公共超类java.io.OutputStream类。InputStream和OutputStream都是...
  • 存储一:文件存储+Java流

    千次阅读 2018-07-21 12:00:50
    文件存储+Java流 路径:/data/data/&lt;package name&gt;/files/目录下 核心技术: 上下文类中提供的openFileOutput()和openFileInput(),之后就是利用Java的的的各种流来进行读写操作。 一、将...
  • Java流与文件操作

    万次阅读 2011-11-07 12:54:23
    Java流与文件操作 一、 数据流的基本概念 1.数据流 在Java中把不同的数据源与程序之间的数据传输都抽象表述为“流”(stream),以实现相对统一和简单的输入/输出操作方式。传输中的数据就像流水一样,也称为...
  • Java流(Stream)、文件(File)和IO

    千次阅读 2016-05-22 18:17:55
    Java流(Stream)、文件(File)和IO Java.io包几乎包含了所有操作输入、输出需要的类。所有这些流类代表了输入源和输出目标。 Java.io包中的流支持很多种格式,比如:基本类型、对象、本地化字符集等等。 一个流...
  • java流的复制

    千次阅读 2019-01-11 17:48:48
    一:IOUtils将InputStream复制到OutputStream中 &lt;!--IOUtil功能类所需jar包--&gt; &lt;dependency&gt; &lt;groupId&gt;commons-io&lt;/groupId&...ve...
  • 在安卓的数据存储方式中有一招是文件存储,当然...openFileOuput()方法返回一个FileOutputStream对象,openFileInput()方法返回一个FileInputStream对象,拿到这对象以后就可以使用java流的方式将数据写入或读出文件了
  • Java流之读取标准流的输入

    千次阅读 2018-02-27 11:13:36
    与程序交互时,从键盘获取输入内容是常有之事,这时可以考虑如下两种...示例一,使用Scanner扫描键盘输入:import java.util.Scanner; public class ScannerTest { public static void main(String[] args) { ...
  • Java流系列(一):流的分类

    千次阅读 2019-02-22 15:07:26
    如果想对文件中的内容进行操作,则必须借助于的概念. 一、:一串流动的数据,以先进先出的方式发送信息的通道. 的分类: 1:按照的方向(参考点永远是自己的程序)分: 输入(InputStream):只能向其中读取...
  • 【0】README0.1) 本文描述转自 core java volume 2, 旨在理解 java流与文件——读写二进制数据(DataOutput + DataInput)的相关知识; 0.2) for complete my diy code, please visit ...
  • Java流(Stream)简介

    千次阅读 2017-11-24 11:54:39
    Java 8中的集合支持一个新的stream方法,它会返回一个(接口定义在java.util.stream.Stream里)。那么, 到底是什么呢?简短的定义就是“从支持数据处理操作的源生成的元素序列”。让我们一步步剖析这个定义。
  • java 写入本地文件

    千次阅读 2018-03-27 10:17:51
    java"] private static void writeToLocal(String destination, InputStream input) throws Exception{ int index; byte[] bytes = new byte[1024]; FileOutputStream downloadFile = new F.....
  • Java 的方式接收参数

    千次阅读 2018-02-01 14:28:43
    Java接收参数的方式有很多,可以用springMVC,struts2等等接收,今天说一下用的方式接收: public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, ...
  • java流媒体之rtsp

    千次阅读 2017-07-20 11:26:51
    再通过自己写的rtsp服务器,同一局域网内的电脑,用vlc访问我本机ip和端口,通过rtsp服务器将推到另一台电脑,vlc可播放摄像头视频数据。对rtsp服务端、客户端的解析。 可以交流技术qq:1342940604
  • Java 媒体传输(断点续传)代码

    万次阅读 2020-05-23 19:14:24
    /** * 下载 * @param request * @param response * @param model * @return * @throws IOException */ @RequestMapping(value = "/api/update", method = RequestMethod.GET) public ResponseEntity<...
  • Java 输出文件中文乱码问题

    千次阅读 2020-04-23 10:18:43
    response.setHeader( "content-disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));
  • java 读取图片供前台显示

    千次阅读 2018-04-09 16:31:36
    jsp阶段&lt;img id="img" src="${ctx }/phone/getImg.ce?...java Controller阶段@RequestMapping("getImg") @ResponseBody public String getImg(HttpServletRequest...
  • 记录java (实现简单的文件读写)

    千次阅读 2016-03-22 11:17:46
    今天就来学习下java。 本文参考http://www.cnblogs.com/shitouer/archive/2012/12/19/2823641.html 深入理解java中的 首先,要先明确的概念: 是一个抽象的概念。是对输入输出设备的抽象。
  • java流缓冲区问题

    万次阅读 2011-08-18 14:49:28
    听着张孝祥老师关于缓冲区...先讲一下关于java缓冲区的知识,应用程序和IO设备之间存在一个缓冲区,一般是没有缓冲区的,但是如果存在缓冲区,就会发现很大的问题。 错误代码如下:为了确保问题发生,我使用了Buffe

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 156,007
精华内容 62,402
关键字:

java流

java 订阅