Java学习个人总结
声明:个人原创,转载请在文章开头明显位置注明出处:https://www.cnblogs.com/sunshine5683/p/10063960.html
学习从来都是一个阶段的学习,然后进行整理与总结,最后才能形成自己的东西,今天将最近所学习的内容整理总结出来,以便方便大家查阅与借鉴!下面每一个包都有时间说明,每一个包都是独立的demo,可以直接运行与测试!
=====================================================================
package test.xhq.day19; import java.io.File; public class Demo1_File {
public static void main(String[] args) {
String parent ="F:\\Mystudy\\java学习总结video\\day19\\video\\001_今日内容.avi";
String chiled = "001_今日内容.avi";
File file = new File(parent, chiled);
System.out.println(file.exists()); } public static void demo1(){
File file =new File("F:\\Mystudy\\java学习总结video\\day19\\video\\001_今日内容.avi");
System.out.println(file.exists()); File file2 = new File("xxx.txt");
System.out.println(file2.exists());
} }
========================================================================
package test.xhq.day19;
import java.io.File;
import java.io.IOException; public class Demo2_FileMethod { public static void main(String[] args) throws IOException {
File file = new File("ccc.txt"); //声明一个file对象并赋予该对象文件类型及文件名
System.out.println(file.createNewFile());//创建某类型的文件 // File file2 = new File("yyy1"); //声明一个file对象并赋予该对象文件夹名字或者路径
// System.out.println(file2.mkdir()); //创建文件夹 // File file2 = new File("yyy\\ddd"); //这样的路径默认会创建在项目根目录下,如果想创建在某个盘,则写上该盘符和绝对路径即可
// System.out.println(file2.mkdirs()); //创建多级路径文件夹
}
}
=============================================================================
package test.xhq.day19;
import java.io.File; public class Demo3_FileMethod {
public static void main(String[] args) {
// File file = new File("ooo.txt");
// File file2 = new File("D:\\xxx.txt");
// System.out.println(file.renameTo(file2));//renameto的功能是如果两个file路径相同则改名,路径不同则改名并剪切 // File file = new File("ooo.txt");
// System.out.println(file.delete()); //删除文件, Java中删除的文件不会保存在回收站 // File file = new File("yyy1");
// System.out.println(file.delete());//删除文件夹,注意该文件夹必须是空的或者没有下级文件夹 File file = new File("yyy\\ddd");
System.out.println(file.delete());
}
}
===============================================================================
package test.xhq.day19;
import java.io.File; public class Demo4_FileMethod {
public static void main(String[] args) {
// File dir1 = new File("yyy");
// System.out.println(dir1.isDirectory());//判断是否是目录
//
// File dir2 = new File("yyy.xls");//判断是否是文件
// System.out.println(dir2.isFile()); File file = new File("zzz");
file.setReadable(false);
System.out.println(file.canRead());//windows中设置不可读之后还是可读的,linux系统设置不可读就真的不可读了
file.setWritable(false);
System.out.println(file.canWrite());//windows系统中设置不可写。就真的不可写了 }
}
===============================================================================
package test.xhq.day19;
import java.io.File;
import java.sql.Date;
import java.text.SimpleDateFormat;
import javax.xml.crypto.Data; public class Demo5_FileMethod {
public static void main(String[] args) {
// File file = new File("ccc.txt");
// File file2 = new File("D:\\user.xml");
// System.out.println(file.getAbsolutePath());
// System.out.println(file2.getAbsolutePath());//获取绝对路径,即文件实际在哪个目录下的全路径
//
// System.out.println(file.getPath());//获取构造方法中传入的路径,即与构造方法中传入的路径相同
// System.out.println(file2.getPath());
//
// System.out.println(file.getName());
// System.out.println(file2.getName());//获取文件夹的名字
//
// System.out.println(file.length());
// System.out.println(file2.length());//获取文件中字节的个数
//
// System.out.println(file.lastModified());//获取最后修改该文件的毫秒值
//
// Date d = new Date(file.lastModified());
// System.out.println(d);//时间显示修改
// SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:MM:SS");
// System.out.println(sdf.format(d));//时间显示优化 File dir = new File("F:/Mystudy/Java学习总结video/day19/video");
String [] arr = dir.list(); //获取指定路径下的所有文件或者文件夹(仅仅为了获取文件名)
for (String string : arr){
System.out.println(string);
}
File[] subFiles= dir.listFiles();//获取指定路径下所有文件或者文件夹的File数组(为了获取文件对象)
for ( File file : subFiles){
System.out.println(file);
}
}
}
==========================================================================
package test.xhq.day19;
import java.io.File; public class Demo6_FileMethod { public static void main(String[] args) {
File dir = new File("E:\\");//
// String[] arr = dir.list();//获取e盘下所有文件或文件夹(方式一)
// for(String string :arr){
// if (string .endsWith(".jpg")){ // 获取后缀名为".jpg"的文件
// System.out.println(string);
// }
// }
File[] subFiles = dir.listFiles();//获取e盘下所有文件夹或文件(方式二,实际开发中使用此方式)
for (File subFile:subFiles){
if (subFile.isFile() && subFile.getName().endsWith(".rpb")){
System.out.println(subFile);
}
}
}
}
=================================================================
Day22 package test.xhq.day22;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.SequenceInputStream;
import java.util.Enumeration;
import java.util.Vector; public class Demo1_SequenceInputStream { /**
* @param args
* SequenceInputStream可以将两个流整合在一起
* @throws IOException
*/
public static void main(String[] args) throws IOException { // FileInputStream fis = new FileInputStream("ccc.txt");//创建字节输入流,关联ccc.txt
// FileOutputStream fos= new FileOutputStream("c.txt");//创建字节输出流c.txt
// int b;
// while((b=fis.read())!=-1){ //不断在ccc.txt上读字节
// fos.write(b); //将读到的字节写到c.txt上
// }
// fis.close(); //关闭字节流
//
// FileInputStream fis2 = new FileInputStream("bbb.txt");
// int b2;
// while((b2=fis2.read())!=-1){
// fos.write(b2);
// }
// fis2.close();
// fos.close(); //整合两个输入流
// FileInputStream fis= new FileInputStream("ccc.txt");
// FileInputStream fis2 =new FileInputStream("bbb.txt");
// SequenceInputStream sis= new SequenceInputStream(fis,fis2);
// //SequenceInputStream sis2= new SequenceInputStream(sis,fis3);//如果有三个流对象时候,可以这样整合,因为sis也是流对象,单有多个流对象时候,还需要考虑
// FileOutputStream fos = new FileOutputStream("c.txt");
// int b;
// while ((b=sis.read())!=-1){
// fos.write(b);
// }
// sis.close(); //sis在关闭的时候会将构造方法中传入的流对象也都关闭
// fos.close(); //整合多个输入流
FileInputStream fis = new FileInputStream("bbb.txt");
FileInputStream fis2= new FileInputStream("ccc.txt");
FileInputStream fis3= new FileInputStream("c.txt");
Vector<FileInputStream> v= new Vector<FileInputStream>();//创建集合对象,将流对象存储进来
v.add(fis);
v.add(fis2);
v.add(fis3); Enumeration<FileInputStream> en= v.elements();
SequenceInputStream sis= new SequenceInputStream(en); //将枚举中的输入流整合成一个
FileOutputStream fos=new FileOutputStream("d.txt");
int b;
while((b=sis.read())!=-){
fos.write(b);
}
sis.close();
fos.close();
} }
======================================================
package test.xhq.day22; import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException; /*
* 内存输出流
*
* 解决方案:
* 字符流读取
* ByteArrayOutputStream
*
* */
public class Demo2_ByteArrayOUtputStream {
public static void main(String[] args) throws IOException {
// FileInputStream fis= new FileInputStream("c.txt");
// byte[] arr= new byte[3];
// int len;
// while((len=fis.read(arr))!=-1){
// System.out.println(new String(arr,0,len));
// } FileInputStream fis = new FileInputStream("c.txt");
ByteArrayOutputStream baos= new ByteArrayOutputStream();//在内存中创建科可以增长的内存数组 int b;
while((b=fis.read())!=-){
baos.write(b); //将读取到的数据逐个写入到内存中
} //byte[] arr=baos.toByteArray(); //将缓冲区 的数据全部获取出来。并赋值给array数组
//System.out.println(new String(arr)); System.out.println(baos.toString()); //将缓冲区的内容转换成字符串,在输出语句中可以省略调用toStreang方法 fis.close();
}
} ================================================
package test.xhq.day22; import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.util.ArrayList; import test.xhq.day22.object.Person; public class Demo3_ObjectOutputStream { /**
* @param args
* @throws IOException
* 存档
*/
public static void main(String[] args) throws IOException {
// Person pe=new Person("张三", 23);
// Person pe2=new Person("李四", 24);
//
// ObjectOutputStream os= new ObjectOutputStream(new FileOutputStream("e.txt"));
// os.writeObject(pe2);
// os.writeObject(pe2);
// os.close(); Person pe=new Person("张三", );
Person pe2=new Person("李四", );
Person pe3= new Person("王五", );
Person pe4= new Person("赵六", ); ArrayList<Person> list=new ArrayList<Person>();
list.add(pe);
list.add(pe2);
list.add(pe3);
list.add(pe4);
ObjectOutputStream oos=new ObjectOutputStream(new FileOutputStream("e.txt"));
oos.writeObject(list); //把整个集合对象一次写出
oos.close();
} }
=======================================================================
package test.xhq.day22; import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.util.ArrayList; import test.xhq.day22.object.Person; public class Demo4_ObjectInputStream { /**
* @param args
* @throws IOException
* @throws FileNotFoundException
* @throws ClassNotFoundException
* 对象输入流,反序列化
*/
public static void main(String[] args) throws FileNotFoundException, IOException, ClassNotFoundException {
// ObjectInputStream ois= new ObjectInputStream(new FileInputStream("e.txt"));
// Person p1= (Person)ois.readObject();
// Person p2=(Person)ois.readObject();
// //Person p3=(Person)ois.readObject();//当文件读取到了末尾时出现EOFException
// System.out.println(p1);
// System.out.println(p2);
// ois.close(); ObjectInputStream ois= new ObjectInputStream(new FileInputStream("e.txt"));
ArrayList<Person> list=(ArrayList<Person>)ois.readObject(); //将集合对象一次读取
for(Person person:list){
System.out.println(person);
}
ois.close();
} }
==========================================================================
package test.xhq.day22; import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintStream;
import java.io.PrintWriter; import test.xhq.day22.object.Person; public class Demo5_PrintStream { /**
* @param args
* @throws FileNotFoundException
* PrintStream和PrintWriter分别是打印的字节流和字符流
* 且只操作数据目的的
*/
public static void main(String[] args) throws FileNotFoundException {
//Demo1();
//测试
PrintWriter pw= new PrintWriter(new FileOutputStream("f.txt"),true);
pw.println(); //自动刷出只针对的是Println()方法
//pw.write(97);
pw.close(); } private static void Demo1() {
System.out.println("aaa");
PrintStream ps = System.out;
ps.println(); // 底层通过ToString()将97转换成对应的字符串打印出来
ps.write(); // 查找码表找到对应的a打印出来 Person p1= new Person("张三",);
ps.println(p1); //默认调用p1的ToString()方法 Person p2= null;
ps.println(p2);//打印引用数据类型。如果是null。就打印null,如果不是null,就打印对象的ToString()
ps.close();
} }
============================================================================
package test.xhq.day22; import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintStream; public class Demo6_SystemIn {
public static void main(String[] args) throws IOException {
//Demo1();
System.setIn(new FileInputStream("a.txt"));//改变标准输入流
System.setOut(new PrintStream("b.txt"));//改变标准输出流 InputStream is= System.in;//获取标准键盘输入流,改变后指向文件
PrintStream ps=System.out;//获取标准输出流,默认指向的是控制台,改变后就指向文件 int b;
while((b=is.read())!=-){
ps.write(b);
}
System.out.println();//也是一个标准输出流,不用关闭,因为没有和硬盘上的文件有关联的管道
is.close();
ps.close();
} private static void Demo1() throws IOException {
InputStream is= System.in;//一般情况下将systemin封装到scaner中,效果更好
int x=is.read();
System.out.println(x);
is.close(); InputStream is2=System.in;
int y=is2.read();
System.out.println(y);
} }
================================================
package test.xhq.day22; import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException; public class Test1 { /**
* @param args
* 定义一个文件输入流。调用read(byte[]b)方法。将a.txt文件中的内容打印出来
*
* 分析:
* 1、read(byte[] b)是字节输入流中的方法,创建FileInputStream。关联a.txt
* 2、创建内存输出流,将读到的数据写到内存输出流中
* 3、创建字节数组,长度为5(读取中文肯定会乱码,所以采取ByteArrayOutputStream 方式)
* 4、将内存输出流的数据全部转换为字符串打印
* 5、关闭输入流
* @throws IOException
*/
public static void main(String[] args) throws IOException {
//1、read(byte[] b)是字节输入流中的方法,创建FileInputStream。关联a.txt
FileInputStream fis= new FileInputStream("a.txt");
//2、创建内存输出流,将读到的数据写到内存输出流中
ByteArrayOutputStream baos= new ByteArrayOutputStream();
//3、创建字节数组,长度为5
byte[] arr= new byte[];
int len ; while((len=fis.read(arr))!=-){
baos.write(arr,,len);
System.out.println(new String (arr,,len));//如果没有ByteArrayOutputStream,则使用此方式,而此方式肯定会乱码
}
// 4、将内存输出流的数据全部转换为字符串打印
System.out.println(baos);//即使没有调用,底层也会默认帮我们调用toString()方法
//5、关闭输入流
fis.close(); } }
==========================================
package test.xhq.day22; import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintStream; //输入流也可以拷贝图片,但是开发中部推荐使用
public class Test2 {
public static void main(String[] args) throws IOException {
System.setIn(new FileInputStream("xx.jpg"));//改变标准输入流
System.setOut(new PrintStream("copy.jpg"));//改变标准输出流
InputStream is=System.in;
PrintStream ps=System.out; byte[] arr=new byte[];
int len;
while((len=is.read(arr))!=-){
ps.write(arr,,len);
}
is.close();
ps.close(); }
}
=====================================================
package test.xhq.day22.object; import java.io.Serializable; public class Person implements Serializable{ //序列化
/**
*
*/
private static final long serialVersionUID = 1L;//可以有可以没有,如果没有,则在修改此类后没
//有存档(即没有执行Demo3_ObjectOutputStream类)
//直接读取(即直接执行Demo4_ObjectInputStream类)
//时,提示序列号错误,并且序列号随机,而加上此行,则没修
//改一次手动将该值加1,在没有存档直接读取时就会报出具体的
//序列号。注意:无论加不加此行,当修改了本类后没有存档直接
//直接读取都会报错 /**
* @param args
*/
private String name;
private int age;
private String gender; public Person(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 + ", getName()="
+ getName() + ", getAge()=" + getAge() + ", getClass()="
+ getClass() + ", hashCode()=" + hashCode() + ", toString()="
+ super.toString() + "]";
} public static void main(String[] args) {
// TODO Auto-generated method stub } }
到此最近的内容总结完毕!继续下一阶段的学习。
Java学习个人总结的更多相关文章
- 0037 Java学习笔记-多线程-同步代码块、同步方法、同步锁
什么是同步 在上一篇0036 Java学习笔记-多线程-创建线程的三种方式示例代码中,实现Runnable创建多条线程,输出中的结果中会有错误,比如一张票卖了两次,有的票没卖的情况,因为线程对象被多条 ...
- 0035 Java学习笔记-注解
什么是注解 注解可以看作类的第6大要素(成员变量.构造器.方法.代码块.内部类) 注解有点像修饰符,可以修饰一些程序要素:类.接口.变量.方法.局部变量等等 注解要和对应的配套工具(APT:Annot ...
- 分享篇——我的Java学习路线
虽然之前我是开发出身,但是我学习的语言是Objective-c,这个语言使用起来范围比较窄,对于自动化学习来说也是无用武之地,所以我自己学习了Java,对于一个有开发经验的人来说学习一门新语言相对来说 ...
- Java学习笔记(04)
Java学习笔记(04) 如有不对或不足的地方,请给出建议,谢谢! 一.对象 面向对象的核心:找合适的对象做合适的事情 面向对象的编程思想:尽可能的用计算机语言来描述现实生活中的事物 面向对象:侧重于 ...
- Java学习心得之 HttpClient的GET和POST请求
作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Java学习心得之 HttpClient的GET和POST请求 1. 前言2. GET请求3 ...
- 0032 Java学习笔记-类加载机制-初步
JVM虚拟机 Java虚拟机有自己完善的硬件架构(处理器.堆栈.寄存器等)和指令系统 Java虚拟机是一种能运行Java bytecode的虚拟机 JVM并非专属于Java语言,只要生成的编译文件能匹 ...
- 0030 Java学习笔记-面向对象-垃圾回收、(强、软、弱、虚)引用
垃圾回收特点 垃圾:程序运行过程中,会为对象.数组等分配内存,运行过程中或结束后,这些对象可能就没用了,没有变量再指向它们,这时候,它们就成了垃圾,等着垃圾回收程序的回收再利用 Java的垃圾回收机制 ...
- 0028 Java学习笔记-面向对象-Lambda表达式
匿名内部类与Lambda表达式示例 下面代码来源于:0027 Java学习笔记-面向对象-(非静态.静态.局部.匿名)内部类 package testpack; public class Test1{ ...
- 0025 Java学习笔记-面向对象-final修饰符、不可变类
final关键字可以用于何处 修饰类:该类不可被继承 修饰变量:该变量一经初始化就不能被重新赋值,即使该值跟初始化的值相同或者指向同一个对象,也不可以 类变量: 实例变量: 形参: 注意可以修饰形参 ...
- 《Java学习笔记(第8版)》学习指导
<Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...
随机推荐
- 内存耗用:VSS/RSS/PSS/USS
Terms VSS - Virtual Set Size 虚拟耗用内存(包含共享库占用的内存) RSS - Resident Set Size 实际使用物理内存(包含共享库占用的内存) PSS - P ...
- python学习笔记6-集合
# 集合是无序且不可重复的元素的集合 a = set([1,3,1,3,3,2,2,5]) a # {1, 2, 3, 5} b = set(range(2,5)) b # {2, 3, 4} # 1 ...
- spring json的支持
在spring中可以通过配置来实现对json的支持: 以下连接是看到的一篇对这方面内容讲解比较好的文章 http://www.cnblogs.com/fangjian0423/p/springMVC- ...
- 【xsy1144】选物品 主席树
题目大意:$N$ 件物品摆成一排,给每个物品定义两个属性 $A$ 和$ B$,两件物品的 差异度 定义为它们两种属性的差的绝对值中较大的一个.如果要求出一些物品的差异度,我们先定义一个 理想物品,使它 ...
- 多项式求逆元详解+模板 【洛谷P4238】多项式求逆
概述 多项式求逆元是一个非常重要的知识点,许多多项式操作都需要用到该算法,包括多项式取模,除法,开跟,求ln,求exp,快速幂.用快速傅里叶变换和倍增法可以在$O(n log n)$的时间复杂度下求出 ...
- NOIP2017滚粗记【下】
(续上篇) Day1: 下午,全竞赛队的人都在竞赛室颓~,再次吐槽下我校网管科的,下午普及考试又把竞赛室的网络切掉了,还好我们机制地准别了一堆单机游戏.普及组考完后,网络又恢复正常了,但晚上9点左右又 ...
- WebForm——浏览器兼容、旋转、缩放、倾斜、移动
transform属性 一.旋转-rotate(角度deg)-deg为角度单位 -o-transform:rotate(45deg) Opera -ms-transform:rotate(45deg) ...
- Anaconda 入门详解
Anaconda Anaconda简介 Anaconda是一个免费开源的Python和R语言的发行版本,用于计算科学(数据科学.机器学习.大数据处理和预测分析),Anaconda致力于简化包管理和部署 ...
- (转)PLSQL Developer 12.0.7连接Oracle12c数据库
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/sl1992/article/details/80489413 1.下载安装PL/SQL Develo ...
- 【树】Path Sum II(递归)
题目: Given a binary tree and a sum, find all root-to-leaf paths where each path's sum equals the give ...