Java当中的IO流(中)

删除目录

  1. import java.io.File;
  2. public class Demo{
  3. public static void main(String[] args){
  4. // 目录
  5. File dir = new File("E:\\hello");
  6. // 删除目录
  7. System.out.println(dir.delete());
  8. // removeDir(dir);
  9. // 下方方法
  10. }
  11. }

如果目录里面有文件,或者还有目录,就无法删除,会显示为false的,那么就要从里头往外进行删除,可以进行递归的方法.

进行删除里头文件或文件夹

  1. public static void removeDir(File dir){
  2. // 使用listFiles()方法,查看目录下是否有文件以及文件夹
  3. File[] files = dir.listFiles();
  4. // 如果没有目录
  5. if(files.length==0){
  6. dir.delete();
  7. return;
  8. }
  9. if(files!=null){
  10. for(File file : files){
  11. // 进行遍历files对象,判断是否是目录
  12. if(file.isDirectory()){
  13. // 进行删除目录
  14. removeDir(file);
  15. }else{
  16. // 进行删除文件
  17. System.out.println(file+":"+file.delete());
  18. }
  19. }
  20. }
  21. System.out.println(dir+":"+dir.delete());
  22. }

对学生信息进行存储

创建学生类:

  1. public class Student implements Comparable<Student>{
  2. private String name;
  3. private int cn, en, ma;
  4. private int sum;
  5. public Student(String name, int cn, int en, intma){
  6. super();
  7. this.name = name;
  8. this.cn = cn;
  9. this.en = en;
  10. this.ma = ma;
  11. this.sum = cn + en + ma;
  12. }
  13. public Student(){
  14. super();
  15. }
  16. // compareTo
  17. @Override
  18. public int compareTo(Student o){
  19. int temp = this.sum - o.sum;
  20. return temp==0 ? this.name.compareTo(o.name):temp;
  21. }
  22. @Override
  23. public int hashCode(){
  24. final int prime = 31;
  25. int result = 1;
  26. result = prime + result + cn;
  27. result = prime + result + sum;
  28. return result;
  29. }
  30. public String getName(){
  31. return name;
  32. }
  33. public void setName(String name){
  34. this.name = name;
  35. }
  36. public void setCn(int cn){
  37. this.cn = cn;
  38. }
  39. public int getCn(){
  40. return cn;
  41. }
  42. public void setEn(int en){
  43. this.en = en;
  44. }
  45. public int getMa(){
  46. return ma;
  47. }
  48. public void setMa(int ma){
  49. this.ma = ma;
  50. }
  51. public int getSum(){
  52. return sum;
  53. }
  54. public void setSum(int sum){
  55. this.sum = sum;
  56. }
  57. @Override
  58. public String toString(){
  59. return "Student [name=" + name + ", sum=" + sum + "]";
  60. }
  61. }

将学生的成绩等按照分数排序:

将信息保存到文件,就要使用IO流,有很多学生就要存储集合

  1. // 简书作者:达叔小生
  2. public class Demo {
  3. private static final String LINE_SEPARATOR = System.getProperty("line.separator");
  4. public static void main(String[] args) throws IOException {
  5. Set<Student> set = new TreeSet<Student>(Collections.reverseOrder());
  6. set.add(new Student("da",12,34,55));
  7. set.add(new Student("shu",23,44,53));
  8. set.add(new Student("dashu",24,12,34));
  9. // 创建目录,对应目录
  10. File dir = new File("Student");
  11. // 如果目录不存在就创建
  12. if(!dir.exists()){
  13. dir.mkdir();
  14. }
  15. // 对应目录下的文件
  16. File desFiles = new File(dir,"student_info.txt");
  17. // 把数据写入到文件中
  18. writeToFile(set,desFiles);
  19. }
  20. // 方法writeToFile(set,desFiles);
  21. public static void writeToFile(Set<Student> set, File desFile ) throws IOException {
  22. FileOutputStream fos = null;
  23. try{
  24. fos = new FileOutputStream(desFile);
  25. // 遍历对象
  26. for(Student stu:set){
  27. String info = stu.getName() + "\t" + stu.getSum() + LINE_SEPARATOR;
  28. // 数据写到文件中
  29. fos.write(info.getBytes());
  30. }
  31. }finally{
  32. if(fos!=null){
  33. try{
  34. // 关闭资源
  35. fos.close();
  36. }catch(IOException e){
  37. throw new RuntimeException("系统资源关闭失败");
  38. }
  39. }
  40. }
  41. }
  42. }

文件清单,就是获取目录中的文件,使用递归的方法,通过过滤器找到指定的所有文件.

  1. public class Demo{
  2. private static final String LINE_SEPARATOR = SeparatorTool.LINE_SEPARATOR;
  3. public static void main(String[] args) throws IOException {
  4. // 明确一个目录
  5. File dir = new File("E:\\hello");
  6. // 过滤器 创建类 FileFilterByJava
  7. FileFilter filter = new FileFilterBySuffix(".java");
  8. // 创建集合
  9. List<File> list = new ArrayList<File>();
  10. // 指定文件清单
  11. getFileList(dir,filter,list);
  12. System.out.println(list.size());
  13. File desFile = new File(dir,"javalist.txt");
  14. writeToFile(list,desFile);
  15. }
  16. // 方法writeToFile
  17. public static void writeToFile(List<File> list, File desFile) throws IOException {
  18. FileOutputStream fos = null;
  19. BufferedOutputStream bufos = null;
  20. try{
  21. fos=new FileOutputStream(destFile);
  22. bufos=new BufferedOutputStream(fos);
  23. for(File file : list){
  24. String info = file.getAbsolutePath()+LINE_SEPARATOR
  25. bufos.write(info.getBytes());
  26. bufos.flush();
  27. }
  28. }finally{
  29. if(bufos!=null){
  30. try{
  31. fos.close();
  32. }catch(IOException e){
  33. throw new RuntimeException("关闭失败");
  34. }
  35. }
  36. }
  37. }
  38. public static void getFileList(File dir, FileFilter filter, List<File> list){
  39. // 获取目录下的子目录
  40. File[] files = dir.llistFiles();
  41. // 过滤器
  42. // 遍历子目录
  43. for(File file : files){
  44. // 进行判断是否是目录,如果是进行递归
  45. if(file.isDirectory()){
  46. // 进行递归
  47. getFileList(file,filter,list);
  48. }else{
  49. // if(file.getName().endsWith(".java")){
  50. if(filter.accept(file)){
  51. list.add(file);
  52. }
  53. }
  54. }
  55. }
  56. }

FileFilterByJava:

  1. // 简书作者:达叔小生
  2. import java.io.File;
  3. public class FileFilterBySuffix implements FileFilter {
  4. private String suffix;
  5. public FileFilterBySuffix(String suffix){
  6. super();
  7. this.suffix = suffix;
  8. }
  9. @Override
  10. public boolean accept(File pathname) {
  11. return pathname.getName().endsWith(suffix);
  12. }
  13. }

分隔符工具:

  1. public class SeparatorTool {
  2. private SeparatorTool(){
  3. super();
  4. }
  5. public static final String LINE_SEPARATOR = System.getProperty("line.separator");
  6. public static final String PATH_SEPARATOR = System.getProperty("path.separator");
  7. public static final String FILE_SEPARATOR = System.getProperty("file.separator");
  8. }

字节流输入和输出,字符流,字节流读取字符

InputStream和OutputStream

FileInputStream和FileOutputStream

BufferedInputStream和BufferedOutputStream

  1. // 简书作者:达叔小生
  2. public class CharStreamDemo{
  3. public static void main(String[] args) throws IOException{
  4. // writeCNText();
  5. FileInputStream fis = new FileInputStream("dashu\\dashu.txt");
  6. // 如何判断? 一个中文默认为两个字节
  7. byte[] buff = new byte[1024];
  8. int len = 0;
  9. while( (len = fis.read(buff) != -1){
  10. String str = new String(buff,0,len);
  11. System.out.println(str);
  12. }
  13. fis.close();
  14. }
  15. public static void readCNText() throws FileNotFoundException{
  16. FileInputStream fis = new FileInputStream("dashu\\dashu.txt");
  17. }
  18. public static void writeCNText() throws FileNotFoundException, IOException{
  19. FileOutputStream fos = new FileOutputStream("dashu\\dashu.txt");
  20. fos.write("简书作者:达叔小生".getBytes());
  21. fos.close();
  22. }
  23. }

编码表

编码表 ASCII 美国标准信息交换码

将生活中的一切用计算机的二进制进行对应表示关系表

中文的,GB2312,用两个字节表示,6到7千

GBK,常用的中文码表,用两字节表示,2万多

unicode为国际标准码表,用两个字节表示

UTF-8是基于unicode的,用一个字节存储,更加标准.

  1. // Java中
  2. char c = 'a';
  3. 无论什么都是两个字节

字符流FileReader

解码和编码

字符串

构造方法

方法 说明
String() 是初始化一个String对象,表示一个空字符序列
String(byte[] byte) 是使用平台默认的字符集解(默认的字符集为gbk)码指定的byte的数组
String(byte[] bytes, Charset charset) 是通过使用指定的charset解码指定的byte数组

FileInputStream

  1. java.lang.Object
  2. -> java.io.InputStream
  3. -> java.io.FileInputStream
  4. public class FileInputStream extends InputStream
  5. 从文件系统中的某个文件中获取输入字节

如果要读取字符流,就要用FileReader.

字节流是用FileInputStream哦~


读取字符文件的 FileReader

  1. java.io
  2. FileReader
  3. java.lang.Object
  4. -> java.io.Reader
  5. -> java.io.InputStreamReader
  6. -> java.io.FileReader
  7. public class FileReader extends InputStreamReader

此类的构造方法自带默认的字符集编码和字节缓冲区,FileReader用于读取字符流.

  1. // 简书作者:达叔小生
  2. // 版本开始为JDK1.1
  3. FileInputStream -> InputStreamReader

FileReader类是一个操作字符文件的便捷类,有默认的字符集编码和字节缓冲区

FileReader的构造方法:

方法 说明
FileReader(File file) 是用来给定从中读取数据的File
FileReader(FileDescriptor fd) 是给定从中读取数据的FileDescriptor
FileReader(String fileName) 是用来读取数据的文件名

java.io.InputStreamReader继承的方法

  1. close, getEncoding, read, ready

java.io.Reader继承的方法

  1. mark, markSupported, read, reset, skip

基础顶层

  1. java.io
  2. Reader
  3. java.lang.Object
  4. -> java.io.Reader

用于读取字符流的抽象类 Reader

public abstract class Reader extends Object

implements Readable, Closeable


Reader方法:

  1. close()为关闭该流,并且释放所有资源
  2. mark(int readAheadLinmit)为标记流中的当前位置
  3. markSupported()为判断此流是否支持mark()
  4. read()为读取单个字符
  5. read(char[] cbuf)为将字符读入数组
  6. read(char[] sbuf, int off, int len)为将字符一部分读入数组
  7. read(CharBuffer target)为试图将字符读入指定的字符缓冲区
  8. ready()为判断是否准备读取此流
  9. reset()为重置此流
  10. skip(long n)为跳过字符

FileReader代码:

  1. FileReader fr = new FileReader("dashu\\dashu.txt");
  2. int ch = fr.read();
  3. System.out.println(ch);
  4. fr.close();
  1. int ch = 0;
  2. int count = 0;
  3. while((ch=fr.read()) != -1){
  4. if(ch=='好'){
  5. count++;
  6. }
  7. }
  8. System.out.println("count =" + count);

字符流FileWriter

  1. java.io
  2. Writer
  3. java.lang.Object
  4. -> java.io.Writer
  5. public abstract class Writer extends Object
  6. implements Appendable, Closeable, Flushable
  7. 写入字符流的抽象类

FileWriter

FileWriter是用来写入字符文件的便捷类

  1. FileOutputStream -> OutputStreamWriter
  2. public class FileWriter extends OutputStreamWriter
  1. java.io FileWriter
  2. java.lang.Object
  3. -> java.io.Writer
  4. -> java.io.OutputStreamWriter
  5. -> java.io.FileWriter

FileWriter此类的构造方法是假定默认的字符编码和默认的字节缓冲区大小,FileWriter是用于写入字符流

  1. FileWriter(File file)
  2. FileWriter(File file, boolean append)
  3. FileWriter(FileDescriptor fd)
  4. FileWriter(String fileName)
  5. FileWriter(String fileName, boolean append)

FileWriter代码例子:

  1. // 输出流
  2. import java.io.FileWriter;
  3. public class FileWriterDemo{
  4. public static void main(String[] args) throws IOException {
  5. // FileWriter, 如果不存在创建一个
  6. FileWriter fw = new FileWriter("dashu\\dashu.txt");
  7. fw.write("简书作者:达叔小生");
  8. fw.flush();
  9. fw.close();
  10. }
  11. }

flush()和close()

flush为刷新该流的缓冲,将流中缓冲区的数据刷新到目的地,刷新后的流可以使用

  1. public abstract void flush() throws IOException

close为关闭此流,关闭流之前要先刷新,关闭资源用的,在关闭前会将缓冲区里的数据刷新到目的地,然后在关闭流,关闭了就不可以在使用了.

  1. public void close(){
  2. flush();
  3. }
  1. // 简书作者:达叔小生
  2. public abstract void close() throws IOException

异常:

  1. java.io.IOException: Steam closed

OutputStreamWriter字符流

  1. FileOutputStream -> OutputStreamWriter

FileWriterFileReader都是有默认的字符集编码,如GBK

字符流通过字节流的桥梁类是

OutputStreamWriter类 -> java.io

可以用charset将写入流中的字符编码为字节

OutputStreamWriter默认的字符集可以给定,否则为平台默认

  1. java.lang.Object
  2. -> java.io.Writer
  3. -> java.io.OutputStreamWriter
  4. public class OutputStreamWriter extends Writer

效率:OutputStreamWriter -> BufferedWriter

  1. Writer out = new BufferedWriter(new OutputStream(System.out));

OutputStreamWriter方法:

  1. OutputStreamWriter(OutputStream out)为使用默认的字符编码
  2. OutputStreamWriter(OutputStream out, Charset cs)为使用给定的字符集编码

OutputStreamWriter例子

  1. // GBK UTF-8
  2. public class Demo{
  3. public static void main(String[] args) throws UnsupportedEncodingException, IOException {
  4. // 有的人用的却是UTF-8
  5. OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("dashu\\dashu.txt"), "utf-8" );
  6. osw.write("简书作者:达叔小生");
  7. osw.close();
  8. }
  9. }

升级:

  1. // 导致乱码
  2. public static void read() throws IOException{
  3. FileReader fr = new FileReader("dashu\\dashu.txt");
  4. // int ch = (char)fr.read();
  5. char[] buff = new char[1024];
  6. int len = fr.read(buff);
  7. System.out.println(new String(buff,0,len);
  8. fr.close();
  9. }

字符流 InputStreamReader

  1. java.io
  2. InputStreamReader
  3. java.lang.Object
  4. -> java.io.Reader
  5. -> java.io.InputStreamReader
  6. public class InputStreamReader extends Reader

InputStreamReader是用来指定编码读取中文的,是字节流通向字符流的桥梁,可以用charset读取字节并解码为字符.

为了提高效率,可以BufferedReader内包装InputSteamReader

  1. BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

InputStreamReader例子:

构造方法:

  1. InputStreamReader(InputStream in)
  2. InputStreamReader(InputStream in, Charset cs)
  3. InputStreamReader(InputStream in, CharsetDecoder dec)
  4. InputStreamReader(InputStream in, String charsetName)

InputStreamReader方法:

  1. // 简书作者:达叔小生
  2. close()
  3. getEncoding()
  4. read()
  5. read(char[] cbuf, int offset, int length)
  6. ready()
  1. public static void read() throws IOException {
  2. // 创建InputStreamReader对象
  3. InputStreamReader isr = new InputStreamReader(new FileInputStream("dashu\\dashu.txt"), "utf-8");
  4. char[] buff = new char[1024];
  5. int len = isr.read(buff);
  6. System.out.println(new String(buff,0,len));
  7. isr.close();
  8. }
  9. // InputStreamReader Console输出

IO流-InputStreamReader和OutputStreamWriter 转换流

  1. // 简书作者:达叔小生
  2. InputStreamReader isr = new InputStreamReader(new FileInputStream("dashu\\dashu.txt"), "GBK");
  3. char[] buff = new char[1024];
  4. int len = isr.read(buff);
  5. System.out.println(new String(buff,0,len));
  6. isr.close();

InputStreamReader的子类为FileReader

OutputStreamWriter的子类为FileWriter

在上面有写到字符流和字节的桥梁为OutputStreamWriterInputStreamReader,所以称为字符转换流

其字符转换流原理为字节流和编码表

字符流通过字节流的桥梁类是

OutputStreamWriter类 -> java.io

可以用charset将写入流中的字符编码为字节

InputStreamReader 是用来指定编码读取中文的,是字节流通向字符流的桥梁

FileWriterFileReaderOutputStreamWriterInputStreamReader的子类,只是用来操作字符文件的便捷类,使用的是默认的编码表.

如果要使用其他编码时,要使用字符转换流,反之操作的是文件,且用默认的编码时,就使用FileWriterFileReader.

不转换:

  1. FileReader fr = new FileReader("dashu.txt");

转换流:

  1. InputStreamReader isr = new InputStreamReader(new FileInputStream("dashu.txt"), "GBK");

要点

字节到字符, 输入流, 为InputStreamReader, 是需要读的,

读的是要给人懂的得,才能读,从看不懂的到看得懂的.

字符到字节, 输出流, 为OutputStreamWriter, 是需要写的,

写的是从看懂的到看不懂.

用字符流复制文本文件

  1. public class CopyTextFileTest{
  2. public static void main(String[] args) throws IOException {
  3. copyTextFile();
  4. }
  5. public static void copyTextFile() throws IOException {
  6. // 明确目标
  7. FileReader fr = new FileReader("dashu.java");
  8. // 明确目的
  9. FileWriter fw = new FileWriter("hello\\hello.txt");
  10. // 循环,读字符
  11. // int ch = 0;
  12. // while((ch=fr.read()) != -1){
  13. // fw.write(ch);
  14. // }
  15. // 效率高的
  16. char[] buff = new char[1024];
  17. int len = 0;
  18. while((len=fr.read(buff) != -1){
  19. fw.write(buff,0,len);
  20. }
  21. // 关闭资源
  22. fw.close();
  23. fr.close();
  24. }
  25. }

字符流缓冲区对象复制文本文件

  1. java.io
  2. Reader
  3. java.lang.Object
  4. -> java.io.Reader
  5. public abstract class Reader extends Object
  6. implements Readable, Closeable

Reader是用来读取字符流的抽象类

  1. // 简书作者:达叔小生
  2. BufferedReader
  3. BufferedWriter

字符输入流中读取文本-BufferedReader

缓冲区是给流的

  1. java.io
  2. BufferedReader
  3. java.lang.Object
  4. -> java.io.Reader
  5. -> java.io.BufferedReader
  6. 从字符输入流中读取文本,用来缓冲各个字符
  1. public class BufferedReader extends Reader

FileReaderInputStreamReader

  1. BufferedReader in = new BufferedReader(new FileReader("dashu.txt"));

BufferedReader 的构造方法:

  1. // 简书作者:达叔小生
  2. BufferedReader(Reader in)为默认大小
  3. BufferedReader(Reader in, int sz)使用指定的大小

BufferedReader的方法

方法 说明
close() 返回类型为void,是用来关闭资源的
mark(int readAheadLimit) 返回类型为void, 是用来标记流中的当前位置
markSupported() 返回类型为boolean, 判断此流是否支持mark()操作
read() 返回类型为int,是用来读取单个字符的
read(char[] cbuf, int off, int len) 返回类型为Int,是将字符数组一部分读入
readLine() 返回类型为String, 是用来读取一个文本的
ready() 返回类型为boolean, 是用来判断此流是否已经准备好
reset() 返回为void, 是将流重置到最新的标记
skip(long n) 返回类型为long, 是用来跳过字符的

将文本写入到字符输出流-BufferedWriter

  1. java.io
  2. BufferedWriter
  3. java.lang.Object
  4. -> java.io.Writer
  5. -> java.io.BufferedWriter
  6. public class BufferedWriter extends Writer
  7. 将文本写入字符输出流

FileWriterOutputStreamWriter

  1. PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("dashu.txt"));

BufferedWriter 的方法

方法 说明
close() 返回类型为void,是用来关闭资源的
flush() 返回类型为void,是用来刷新该流的缓冲
newLine() 返回类型为void,是用来写入一个行分隔符
write(char[] cbuf, int off, int len) 返回类型为void, 是用来写入字符数组的一部分
write(int c) 返回类型为void,是用来写入单个字符
write(String s, int off, int len) 返回类型为void, 写入字符串的一部分

字符流的缓冲区

  1. // 简书作者:达叔小生
  2. public class CharStreamBufferedDemo{
  3. public static void main(String[] args) throws IOException {
  4. // BufferedReader和BufferedWriter 字符流缓冲区
  5. // BufferedReader
  6. // 从字符输入流中读取文本,用来缓冲各个字符
  7. // BufferedWriter
  8. // 将文本写入到字符输出流
  9. copyTextByBuffer();
  10. readText();
  11. writeText();
  12. }
  13. public static void writeText() throws IOException {
  14. BufferedWriter b = new BufferedWriter(new FileWriter("hello.java");
  15. for(int x=1, x<=4; x++){
  16. b.write(x);
  17. b.newLine();
  18. b.flush();
  19. }
  20. b.close();
  21. }
  22. public static void readText() throws IOException {
  23. BufferedReader buffer = new BufferedReader(new FileReader("dashu.java");
  24. // String line = buffer.readLine();
  25. // System.out.println(line);
  26. String line = null;
  27. while((line=buffer.readLine()) != null){
  28. System.out.println(line);
  29. }
  30. buffer.close();
  31. }
  32. public static void copyTextByBuffer(){
  33. BufferedReader bufr = new BufferedRead(new FileReader("hello.txt"));
  34. BufferedWriter bufw = new BufferedWriter(new FileWriter("hello\\dashu.txt"));
  35. // 循环
  36. String line = null;
  37. while((lline = bufr.readLine() != null){
  38. bufr.write(line);
  39. bufr.newLine();
  40. bufr.flush();
  41. }
  42. bufw.close();
  43. bufr.close();
  44. }
  45. }

流是一连流串的字符,是信息的通道,分输出流和输入流。

IO的分类

第一种分:输入流和输出流。

第二种分:字节流和字符流。

第三种分:节点流和处理流。

Java中流的分类:

流的运动方向,可分为输入流和输出流两种。

流的数据类型,可以分为字节流和字符流。

输入流类都是抽象类

InputStream(字节输入流)或抽象类Reader类(字符输入流)的子类。

输出流类都是抽象类

OutputStream(字节输出流)或抽象类Writer类(字符输出流)的子类。

输入流从文件输入为读取输出流从文件输出为写入数据

输入流

输入流用于读取数据,用户可以从输入流中读取数据,但不能写入数据。

输入流读取数据过程如下:

(1)打开一个流。

如:FileInputStream inputFile=new FileInputStream("数据源");

(2)从信息源读取信息。

如:inputFile.read();

(3)关闭流。

如:inputFile.close();

输出流

输出流用于写入数据。只能写,不能读。

写数据到输出流过程如下:

(1)打开一个流。

如:FileOutputStream outFile=new FileOutputStream("数据源");

(2)写入信息到目的地。

如:outFile.write(inputFile.read()):

(3)关闭流。

如:outFile.close();

字符流ReaderWriter

字节字符转换流:

  1. // 简书作者:达叔小生
  2. InputStreamReader
  3. OutputStreamWriter

往后余生,唯独有你

简书作者:达叔小生

90后帅气小伙,良好的开发习惯;独立思考的能力;主动并且善于沟通

简书博客: https://www.jianshu.com/u/c785ece603d1

结语

  • 下面我将继续对 其他知识 深入讲解 ,有兴趣可以继续关注
  • 小礼物走一走 or 点赞

Java当中的IO流(中)的更多相关文章

  1. 第54节:Java当中的IO流(中)

    Java当中的IO流(中) 删除目录 // 简书作者:达叔小生 import java.io.File; public class Demo{ public static void main(Stri ...

  2. 第55节:Java当中的IO流-时间api(下)-上

    Java当中的IO流(下)-上 日期和时间 日期类:java.util.Date 系统时间: long time = System.currentTimeMillis(); public class ...

  3. 第53节:Java当中的IO流(上)

    Java当中的IO流 在Java中,字符串string可以用来操作文本数据内容,字符串缓冲区是什么呢?其实就是个容器,也是用来存储很多的数据类型的字符串,基本数据类型包装类的出现可以用来解决字符串和基 ...

  4. Java当中的IO流-时间api(下)-上

    Java当中的IO流(下)-上 日期和时间 日期类:java.util.Date 系统时间: long time = System.currentTimeMillis(); public class ...

  5. Java当中的IO流(上)

    Java当中的IO流 在Java中,字符串string可以用来操作文本数据内容,字符串缓冲区是什么呢?其实就是个容器,也是用来存储很多的数据类型的字符串,基本数据类型包装类的出现可以用来解决字符串和基 ...

  6. java 21 - 1 IO流中的字符流概述

    字节流通过读取一个byte数组的方式可以读取中文的,但是有可能出现小问题,所以,读取中文最好是用字符流. 字符流: 字符流=字节流+编码表. 编码表: 由字符及其对应的数值组成的一张表 编码表介绍: ...

  7. 揭开Java IO流中的flush()的神秘面纱

    大家在使用Java IO流中OutputStream.PrintWriter --时,会经常用到它的flush()方法. 与在网络硬件中缓存一样,流还可以在软件中得到缓存,即直接在Java代码中缓存. ...

  8. 第39节:Java当中的IO

    Java当中的IO IO的分类 第一种分:输入流和输出流 第二种分:字节流和字符流 第三种分:节点流和处理流 节点流处理数据,处理流是节点流基础上加工的. IO中的重点: InputStream Ou ...

  9. io流中的装饰模式对理解io流的重要性

    为了说明 io流中的装饰者模式对理解io流的重要性,我想先简要介绍以下io的装饰模式. 装饰(decorator)你也可以翻译成修饰.比如:一个会精通化学数学的物理学家.在这个"物理学家&q ...

随机推荐

  1. redis 学习(18)-- AOF

    redis -- AOF 什么是 AOF 通过日志方式将redis中的写命令进行日志记录,保存在硬盘文件中. 日志记录的实质是将写命令写在硬盘的缓冲区中,再根据相关策略把数据刷新到磁盘中. 当redi ...

  2. C# 不用添加WebService引用,调用WebService方法

    // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行. [System.Web.Script.Services.ScriptService] 使用HttpWeb ...

  3. 18-Perl 错误处理

    1.Perl 错误处理程序运行过程中,总会碰到各式各样的错误,比如打开一个不存在的文件.程序运行过程中如果出现错误就会停止,我们就需要使用一些检测方法来避免错误,从而防止程序退出.Perl 提供了多中 ...

  4. url协议+域名+端口号

    string url = System.Web.HttpContext.Current.Request.Url.Scheme + "://" +                   ...

  5. c#连接Java后台,处理返回的数据

    首先定义共通文件,根据url连接Java后台 class ConntectUtil { public JObject ConsoleApplication(string appID, CustomDa ...

  6. php.ini配置文件参数中文说明文档

    转自  https://blog.csdn.net/seoyundu/article/details/101147041 中文翻译php.ini配置文件 [PHP php.ini-dist] ;;;; ...

  7. mybatis-04【小结】

    mybatis-04[小结] 1.Mybatis 中 # 和 $ 的区别?#相当于对数据 加上 双引号,$相当于直接显示数据1)#将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号. 如:o ...

  8. /build-impl.xml:1030: The module has not been deployed.(netbean javaweb)

    我在netbean上创建了一个javaweb,这个项目创建成功了,但是运行时却有了错误,错误贴图如下 报错: The module has not been deployed.  See the se ...

  9. Java语言基础(15)

    1 综合案例 Demo1 设计一个父类Shape(图形类),抽象类常量:public static final double PI = 3.14;抽象方法:void show():输出每一个属性值vo ...

  10. 2019ICPC南京网络赛A题 The beautiful values of the palace(三维偏序)

    2019ICPC南京网络赛A题 The beautiful values of the palace https://nanti.jisuanke.com/t/41298 Here is a squa ...