首页 > 编程语言 >Java(3) ----- File类、IO流、基本软件结构

Java(3) ----- File类、IO流、基本软件结构

时间:2024-03-31 20:55:06浏览次数:12  
标签:文件 读取 Java 字节 软件结构 线程 File 客户端

File类:

代表当前操作系统的文件对象。

File类:建用来操作操作系统的文件对象的,删除文件,获取文件信息,创建文件(文件夹)

广义来说操作系统认为文件包含(文件和文件夹)

File类创建文件路径:

相对路径:默认是直接相对到工程目录下寻找文件的;

分隔符:File:separator

getAbsolutePath() 绝对路径;

File类的判断功能的方法

exists() 是否存在;isFile() 是否为文件;

递归

方法在方法中调用了自己;

直接递归:自己的方法调用自己;

间接递归:自己的方法调用别人的方法,别的方法又调用了自己;

 IO流:默认是数据覆盖管道

追加数据管道,第二参数是true就可以;

FileInputStream 会一个一个读取字节,读取英文和数字没问题,但是读中文会导致乱码;

使用字节数组读取内容,效率可以。无法避免中文乱码;

InputStream :::直接创建一个字节输入流管道和源文件路径接通;

如何实现读取可以避免乱码?

  1、定义一个字节数组与文件的大小刚刚一样大,然后一桶水读取全部字节数据再输出; readAllBytes() 读取全部字节;

字节流不适合读取文本文件内容输出,读写文件内容建议使用字符流

os.flush() 立即刷新数据到文件中去,刷新后,管道还能继续使用;    

\r\n : 换行符,在大部分情况下通用;

JDK释放资源的新方法

  try with resources:```

复制文件夹(面试题)

 

基本软件结构 

通信一定是基于软件结构实现的;

1.C/S结构 :全称为client/server结构,是指客户端和服务器结构。

常见程序有 QQ、迅雷,IDEA等软件。

2.B/S结构 :全称为Browser/server结构,是指浏览器和服务器结构。

常见浏览器有谷歌、火狐等、博学谷、京东、淘宝。

(开发中的重点,基于网页设计界面,界面效果可以更丰富:Java web开发)

两种架构各有优势,但是无论哪种架构,都离不开网络的支持。网络编程,就是在一定的协议下,实现两台计算机的通信的技术。

网络通信的三要素

1、协议:计算机网络客户端与服务端必须实现约定和彼此需要遵守的通信规则;

2、IP地址:互联网协议地址;

IPv4:4个字节,32位字符。

IPv4:6个字节,128位字符  ;

ipconfig:查看本机的IP

3、端口

标识唯一一个设备中的进程;

UDP

DatagramPacket:数据包对象,作用:用来封装要发送或者要接收的数据。比如:集装箱;

DatagramSocket:发送对象。作用:用来发送或者接收数据包,比如:码头;

TCP通信

使用场景:

(1)文件上传和下载

(2)邮件发送和接收

(3)远程登录

客户端的开发流程:

1、客户端要求请求于服务端的Socket管道连接。

2、从Socket通信管道中得到一个字节输出流

3、通过字节输出流给服务端写出数据;

服务端的开发流程:

1、注册端口;

2、接收客户端的Socket管道连接

3、从Socket通信管道得到一个字节输入流

4、从字节输入流中读取客户端发来的数据;

TCP服务端接受多个客户端;

N-N关系,一个客户端要一个线程;

解决方法:可以在服务端引入线程池,使用线程池来处理与客户端的消息通信;线程池不会引起过多的线程而导致系统死机!!!

HandlerSocketThreadPool(int maxPoolSize,int queueSize){

  executer =   }

优劣:

Y:不会引起系统的死机,可以控制并发线程的数量;

L:同时可以并发的线程将受到限制;

端口转发的思想证明:

端到端的通信,严格实现端口转发的操作;

标签:文件,读取,Java,字节,软件结构,线程,File,客户端
From: https://www.cnblogs.com/kuangmeng/p/18105656

相关文章

  • Java继承<一>
    目录继承作用继承概念继承语法访问父类成员变量1.子类和父类不存在同名成员变量2.子类和父类成员变量同名访问父类成员方法1.成员方法名字不同2.成员方法名字相同super关键字继承作用Java中使用类对现实世界中实体来进行描述,类经过实例化之后的产物对象,则可以......
  • Java方法介绍及使用
    目录一方法概念及简单使用1.什么是方法2.方法的定义3.注意事项4.方法调用的执行过程5.实参和形参的关系(重要)6.没有返回值的方法二方法重载关于方法签名三方法递归(注意效率问题)递归的概念递归执行过程分析一方法概念及简单使用1.什么是方法是能够模块化的组......
  • java的类,对象和构造方法
    学习目标:掌握类,对象和构造方法的创建和使用学习内容:Java中的类和对象构造方法Java中的类和对象:类和对象的定义类Java当中,类可以理解为某一类东西,比如在现实生活中,水果,蔬菜等等都属于类的定义。在编写代码时,主要使用的语句是publicclass+类名,例如这里创建水果类:......
  • 在 Java 中获取或设置 PDF 元数据
    介绍由于其固定和可呈现的性质,PDF文件被用户和企业广泛用于Web应用程序。这些文件中的每一个都包含“元数据”,它本质上转换为有关数据的数据。PDF元数据包含有关文档的补充信息,例如文档的作者、主题、标题、创建日期等。如果PDF文件最初是通过从原始源文档(即DocX、P......
  • java-飞机大战(源代码)
    今天来更新我的飞机大战了,是参考尚学堂写的,有需要的小伙伴可以直接来取,关于state=2时以及state=3时的运行时可能不太优化,下周我会更新代码的. 1.整个游戏的主窗口以及游戏方法importjavax.swing.*;importjava.awt.*;importjava.awt.event.KeyAdapter;importjav......
  • Java(2)之变量,数据类型,运算符
    1、标识符在java中标识符是由字母数字下划线,美元符号组成(其中数字没办法作首)在java中是区分大小写的。2、关键字关键字是在java中赋予了特殊的含义的字符,只能用于特定地方例如包package类class接口interface引用:this,supe,创建对象:new等等关键字引用需要注意大小写,且......
  • Java-数据类型
    前言:本文主要讲述八大数据类型以及使用规范,最后对知识进行一个拓展。强类型语言要求变量使用要严格符合规定,所有变量都必须先定义后才能使用弱类型语言基本类型(primitivetype)引用类型(referencetype)*不规范的*规范的*如下面这种定义变量是可以成功:*注意事项:......
  • Java常用API二
    BigDecimal用于解决浮点数运算时,出现结果失真的问题 传统时间:Date日期类//1、创建一个Date的对象,代表系统当前的时间信息Dated=newDate();System.out.println(d);//2、拿到时间毫秒值longtime=d.getTime();//3、把时间毫秒值转换成日期对象:2s后时间是多少time+=......
  • Java基础入门--第三章--面向对象(上)
    面向对象(上)1.1面向对象的思想2类与对象2.1类的定义2.2对象的创建与使用2.3对象的引用传递2.4访问控制权限3封装性3.1为什么要封装3.2如何实现封装4构造方法4.1定义构造方法4.2构造方法的重载5this关键字5.1使用this关键字调用本类中的属性5.2使用this......
  • 程序员/后端开发方向Java 跳槽注意事项(简历和面试经验分享)
    程序员/后端开发方向Java跳槽注意事项(简历和面试经验分享)应届生面试经验参考:https://www.cnblogs.com/rainbow-1/p/16779048.html简历:1、个人感觉还是要写真话,包装的内容要有一定的基础,问起来能够对答几个回合。2、基本信息最好直接写年龄,而不是出生年月。跳槽简历最好标明当......