我是靠谱客的博主 魁梧大船,最近开发中收集的这篇文章主要介绍Java-11.26,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

package org.lemon.DataStream;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

/**
 * @author zhaojiangbo
 *针对Java基本数据类型的数据进行读写操作
 */
public class DataStreamDemo {
    public static void main(String[] args) throws IOException {
    	
    	
    	write();
    	read();
	}

	private static void read() throws FileNotFoundException,IOException {
	
	DataInputStream dis = new DataInputStream(new FileInputStream("a.txt"));	
	dis.readInt();
    	long l = dis.readLong();
    	byte b = dis.readByte();
    	boolean boolean1 = dis.readBoolean();
    	double d = dis.readDouble();
    	float f = dis.readFloat();
    	dis.close();
    	System.out.println(l);
    	System.out.println(b);
    	System.out.println(boolean1);
    	System.out.println(d);
    	System.out.println(f);
	}
	private static void write() throws FileNotFoundException, IOException {
	DataOutputStream dos = new DataOutputStream(new FileOutputStream("a.txt"));
	
	dos.writeInt(85);
	dos.writeByte(10);
	dos.writeDouble(2.4);
	dos.writeLong(99999999L);
	dos.writeFloat(15.66F);
	
	dos.close();
}
}


package org.lemon.ByteArrayStream;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;

/**
 * @author zhaojiangbo
 *ByteArrayInputStream和ByteArrayOutStream
 *   内存操作流:针对内存的数据进行操作的,程序一结束,这些内存中的数据就消失掉了!
 *   特点:针对小文件进行操作!
 *   
 *   public ByteArrayOutputStream():创建默认的缓冲区大小的内存操作输出流(单位是字节)
 *
 * 			public byte[] toByteArray()创建一个新分配的 byte 数组(将内存操作输出流对象转换成字节数组)
 * 			void reset():重置内存操作输出流
 *
 * 	 public ByteArrayInputStream(byte[] buffer):参数是一个字节数组(缓冲数组)
 */
public class ByteArrayStreamDemo {
  public static void main(String[] args) throws IOException {
	//创建内存操作输出流对象
	ByteArrayOutputStream bos = new ByteArrayOutputStream();
	for(int i =0;i<5;i++) {
		bos.write(("wo"+i).getBytes());
	}
	bos.close();
	
    //将内存操作输出流对象转换成字节数组
    byte[] buffer = bos.toByteArray();
    //创建内存操作输入流对象
    ByteArrayInputStream bis =  new ByteArrayInputStream(buffer);
    int by = 0;
    while((by=bis.read())!=-1) {
    	System.out.print((char)by);
    }
    bis.close();
}
}

package org.lemon.CopyFile;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;

/**
 * @author zhaojiangbo
 *需求:将当前项目下的DataStreamDemo.java中的内容复制到当前项目下Copy.java文件中------改进版
 */
public class CopyFileDemo {
   public static void main(String[] args) throws IOException {
	BufferedReader br = new BufferedReader(new FileReader("DataStreamDemo.java"));
	PrintWriter pw = new PrintWriter(new FileWriter("Copy.java"),true);
	String line = null;
	while((line=br.readLine())!=null) {
		pw.println(line);
	}
	br.close();
	pw.close();
}
}

package org.lemon.Print;

import java.io.IOException;
import java.io.PrintWriter;

/**
 * @author zhaojiangbo
 *字节打印流:PrintStream
 *字符打印流:PrintWriter
 * 	打印流特点:
 * 		1)在复制文件的,打印流不能操作数据源,只能操作目的地的数据(只能输出数据)
 * 		2)打印流可以有自动刷新的功能
 * 		3)打印流可以直接针对文本文件进行操作:(构造方法的参数有File类或者是String类型)
 * 构造方法:
 * 			public PrintWriter(String fileName)
 */
public class PrintWriterDemo {
   public static void main(String[] args) throws IOException {
	//创建字符打印流对象
	PrintWriter pw = new PrintWriter("a.txt");
	
	pw.write("wo");
	pw.write("ai");
	pw.write("ni");
	
	pw.flush();
	
	pw.close();
}
}

package org.lemon.Print;

import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;

/**
 * @author zhaojiangbo
 *PrintWriter:有自动刷新功能:
 * 	public PrintWriter(Writer out,boolean autoFlush)
 * 		第二个参数指定为true,则启动自动刷新
 * 		PrintWriter pw = new PrintWriter(new FileWriter("pw.txt"),true) ;
 * 加入自动刷新功能并且在写数据的时候,使用println():换行  println("hello")
 * 	作用相当于:
 * 		pw.write("") ;  pw.newLine() ;    pw.flush() ;
 */
public class PrintWriterDemo2 {
	public static void main(String[] args) throws IOException {
		PrintWriter pw = new PrintWriter(new FileWriter("abc.txt"), true);

		pw.println("wo");
		pw.println("yi");
		pw.println("ran");
		pw.println("ai");
		pw.println("ni");

		pw.close();
	}

}


package org.lemon.System;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

/**
 * @author zhaojiangbo
 *键盘录入
 * 		1.Scanner类
 * 			Scanner sc = new Scanner(System.in) ;
 * 		2.使用IO流的形式进行录入数据
 * 			BufferedReader br = new BufferedReader(new InputStreamReader(System.in)) ;
 */
public class SystemInDemo {
  public static void main(String[] args) throws IOException {
	BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
	
	System.out.println("请输入一个字符串");
	String line = br.readLine();
	System.out.println("数据是:"+line);
	
	System.out.println("请输入一个整数");
	String line2 = br.readLine();
	int i = Integer.parseInt(line2);
	System.out.println("数据是:"+i);
	
}
}

package org.lemon.System;

import java.io.PrintStream;

/**
 * @author zhaojiangbo
 *标准输入和输出流
 * System类:
 * 			in:----->InputStream is = System.in ; 
 * 			out----->PrintStream ps = System.out ;
 * System.out.println();
 */
public class SystemOutDemo {
  public static void main(String[] args) {
	System.out.println("wo ai ni");
	System.out.println("ni ai wo");
	//字节打印流
	PrintStream out = System.out;
	out.println("wo yi ran ai ni");//打印一个字符串数据并且终止当前行
	
}
}

package org.lemon.RandomAccessFile;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;

/**
 * @author zhaojiangbo
 *RandomAccessFile:随机访问流:此类的实例支持对随机访问文件的读取和写入
 * 	 不是实际意义上的流,因为它继承自Object类
 * 构造方法:
 * 		public RandomAccessFile(String name, String mode)
		参数一:指定该文件的路径
		参数二:指定的一种模式:常用的模式:"rw",这种模式是可以读也可以写
 */
public class RandomAccessFileDemo {
  public static void main(String[] args) throws IOException {
	
	  read();
	  write();
	  
}

private static void read() throws FileNotFoundException, IOException {
	RandomAccessFile raf = new RandomAccessFile("abc.txt", "rw");
	  
	  byte b = raf.readByte();
	  System.out.println(b);
	  System.out.println("getFilePointer:"+raf.getFilePointer());
	  
	  char ch = raf.readChar();
	  System.out.println(ch);
	  
	  String str = raf.readUTF();
	  System.out.println(str);
	  raf.close();
	  
}

private static void write() throws FileNotFoundException, IOException {
	RandomAccessFile raf2 = new RandomAccessFile("abc.txt", "rw");
	  
	  raf2.writeByte(100);
	  raf2.writeChar('A');
	  raf2.writeInt(21);
	  raf2.writeUTF("我爱高圆圆");
	  
	  raf2.close();
}
}

package org.lemon.Sequence;

import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.SequenceInputStream;

/**
 * @author zhaojiangbo
 *SequenceInputStream:合并流(读数据):表示其他输入流的逻辑串联
 *         合并流在复制文件的时候,只能操作数据源,不能操作目的地
 *  构造方法:public SequenceInputStream(InputStream s1,InputStream s2)   
 *  
 *  需求:将DataStreamDemo.java和ByteArrayStreamDemo.java两个java文件中的内容复制到Copy.java文件中    
 */
public class SequenceInputStreamDemo {
	public static void main(String[] args) throws IOException {
		// 分别封装这个两个java文件
		InputStream s1 = new FileInputStream("DataStreamDemo.java");
		InputStream s2 = new FileInputStream("ByteArrayStreamDemo.java");

		// 创建合并流对象
		SequenceInputStream sis = new SequenceInputStream(s1,  s2);

		// 封装目的地
		BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("Copy.java"));

		// 读数据
		byte[] bys = new byte[1024];
		int len = 0;
		while ((len = sis.read(bys)) != -1) {
	    // 写数据
			bos.write(bys, 0, len);
			bos.flush();
		}

		// 释放资源
		sis.close();
		bos.close();
	}
}

package org.lemon.Sequence;

import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.SequenceInputStream;
import java.util.Enumeration;
import java.util.Vector;

/**
 * @author zhaojiangbo
 *复制多个文件
 * public SequenceInputStream(Enumeration<? extends InputStream> e)
 * Vector集合中的特有功能:public Enumeration<E> elements()
 * 需求:将DataStreamDemo.java,ByteArrayStreamDemo.java,以及CopyFileDemo.java将这三个文件中的内容
 *     复制到当前项目下:Copy.java文件中
 */
public class SequenceInputStreamDemo2 {
   public static void main(String[] args) throws IOException {
	   //封装文件
	   InputStream s1 = new FileInputStream("DataStreamDemo.java");
	   InputStream s2 = new FileInputStream("ByteArrayStreamDemo.java");
	   InputStream s3 = new FileInputStream("CopyFileDemo.java");
	   //创建Vector集合且使用泛型
	   Vector<InputStream> vector = new Vector<InputStream>();
	   //添加
	   vector.add(s1);
	   vector.add(s2);
	   vector.add(s3);
	  //调用特有功能:public Enumeration<E> elements()
	   Enumeration<InputStream> en = vector.elements() ;
	   SequenceInputStream sis = new SequenceInputStream(en);
	   BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("Copy.java"));
	   //读写
	   byte[] bys = new byte[1024];
	   int len = 0;
	   while((len=sis.read())!=-1) {
		   bos.write(bys,0,len);
	   }
	   //释放资源
	   sis.close();
	   bos.close();
}
}

package org.lemon.ObjectStream;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;

/**
 * @author zhaojiangbo
 * 序列化流:将对象像流的方式或者网络传输中的数据写数据.对象---->流数据:ObjectOutputStream
 * 反序列化:将流数据或者网络传输中的流数据读取出来.流数据---->还原成对象:ObjectInputStream
 * 
 * public final void writeObject(Object obj):将obj对象写入到当前的序列化流中
 * public final Object readObject():从当前反序列化流中读取一个对象
 */
public class ObjectStreamDemo {
  public static void main(String[] args) throws IOException, ClassNotFoundException {
	
	  read();
}

private static void read() throws IOException, FileNotFoundException, ClassNotFoundException {
	//创建一个反序列化流对象
	ObjectInputStream ois = new ObjectInputStream(new FileInputStream("qwer.txt"));
	//使用反序列化 读数据
	  Object obj = ois.readObject();
	  System.out.println(obj);
	  ois.close();
	  
	  write();
	  
}

private static void write() throws IOException, FileNotFoundException {
	//创建一个序列化流对象
	ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("qwer.txt"));
	Student s = new Student("杨桃",28);
	  //写数据
	  oos.writeObject(s);
	  
	  oos.close();
}
}
package org.lemon.ObjectStream;

import java.io.Serializable;

/**
 * @author zhaojiangbo
 *如果启用序列化功能,那么必须实现一个接口:Serializable
 *transient:不用被序列化的时候用它修饰
 *序列化或者是反序列化!如果一个接口中没有字段,没有构造方法,没有成员方法,叫做标记接口
 */
public class Student implements Serializable {
  /**
	 * 
	 */
	private static final long serialVersionUID = 1L;
private String name;
  public transient int age;
  public Student() {
		super();
	}
	
	public Student(String name, int age) {
		super();
		this.name = name;
		this.age = age;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	@Override
	public String toString() {
		return "Person [name=" + name + ", age=" + age + "]";
	}	
	
}

package org.lemon.Properties;

import java.util.Properties;
import java.util.Set;

/**
 * @author zhaojiangbo
 *Properties:属性集合类,该类继承自Hashtable<K,V>,该类属于Map集合
 *   属性列表中每个键及其对应值都是一个字符串
 */
public class PropertiesDemo {
	public static void main(String[] args) {
		// 创建Properties
		Properties p = new Properties();
		// 添加
		p.put("高圆圆", 38);
		p.put("杨桃", 27);
		p.put("黄海波", 40);
		p.put("果然", 28);
		// 遍历
		Set<Object> keySet = p.keySet();
		for (Object key : keySet) {
			Object value = p.get(key);
			System.out.println(key + "---" + value);
		}
    }
}

package org.lemon.Properties;

import java.util.Properties;
import java.util.Set;

/**
 * @author zhaojiangbo
 *   public Object setProperty(String key,String value) 给属性列表中添加元素
 * 	 public Set<String> stringPropertyNames():获取当前属性列表中所有的键的集合,键值都是String类型
 * 	 public String getProperty(String key)用指定的键在此属性列表中搜索属性值
 */
public class PropertiesDemo2 {
	public static void main(String[] args) {
		Properties p = new Properties();
		p.setProperty("我", "20"); // 都是String类型
		p.setProperty("依", "18");
		p.setProperty("然", "21");
		p.setProperty("爱", "22");
		p.setProperty("你", "19");

		Set<String> keySet = p.stringPropertyNames();
		for (String key : keySet) {
			String value = p.getProperty(key);
			System.out.println(key + "---" + value);
		}

	}
}

package org.lemon.Properties;


import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Properties;

/**
 * @author zhaojiangbo
 * 将文件中的数据加载到属性集合中:public void load(Reader reader)
 * 将属性集合中的数据保存到文件中:public void store(Writer writer,String comments)
 * 				                        第二个参数:comments:对当前属性列表 的描述
 */
public class PropertiesDemo3 {
   public static void main(String[] args) throws IOException {
	
	   myload();
	   mystore();
	   
}

private static void myload() throws FileNotFoundException, IOException {
	Properties p = new Properties();
	   FileReader fr = new FileReader("name.txt");
	   p.load(fr);
	   fr.close();
	   System.out.println(p);
}
private static void mystore() throws IOException {
	
	Properties prop = new Properties();
	
	
	prop.setProperty("我", "34") ;
	prop.setProperty("爱", "29") ;
	prop.setProperty("高圆圆", "28") ;
	
	//将属性列表中的数据保存到文件中	public void store(Writer writer,String comments)
	FileWriter fw = new FileWriter("name.txt") ;

	prop.store(fw, "names content") ;

	fw.close() ;
}
}

package org.lemon.Properties;

import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Reader;
import java.io.Writer;
import java.util.Properties;
import java.util.Set;

/**
 * @author zhaojiangbo
 *需求:文本文件(user.txt),知道数据是键值对形式的,不知道内容是
  	   请写一个程序判断是否有"abc"这样的键存在,如果有就改变其值为”100”
 */
public class PropertiesDemo4 {
	public static void main(String[] args) throws IOException {
		//创建属性集合类对象
		Properties prop = new Properties();

		//创建字符输入流对象
		Reader r = new FileReader("user.txt");
		//加载到属性集合中
		prop.load(r);

		// 关闭流资源
		r.close();

		// 遍历属性列表
		Set<String> keySet = prop.stringPropertyNames();
		for (String key : keySet) {
			
			if ("abc".equals(key)){
				
				prop.setProperty(key, "100");// 修改
			}
		}
        // 创建字符输出流对象
		Writer w = new FileWriter("user.txt");
		// 调用功能
		prop.store(w, "content");
		// 释放资源
		w.close();
	}
}







最后

以上就是魁梧大船为你收集整理的Java-11.26的全部内容,希望文章能够帮你解决Java-11.26所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(38)

评论列表共有 0 条评论

立即
投稿
返回
顶部