Java教程 第30页

Java DataOutputStream类

Java DataOutputStream类 数据输出流允许应用程序以与机器无关方式将Java基本数据类型写到底层输出流。 下面的构造方法用来创建数据输出流对象。 DataOutputStream out = DataOutputStream(OutputStream out); 创建对象成功后,可以参照以下列表给出的方法,对流进行写操作或者其他操作。 序号 方法描述 1 public final void write(byte[] w, int off, int len)throws IOException 将指定字节数组中从偏移量 off 开始的 len 个字节写入此字节数组输出流。 2 Public final int write(byte [] b)throws IOException 将指定的字节写入此字节数组输出流。 3 public final void writeBooolean()throws IOException, public final void writeByte()throws IOException, public final void writeShort()throws IOException, public final void writeInt()throws IOException 这些方法将指定的基本数据类型以字节的方式写入到输出流。 4 Public void flush()throws IOException   刷新此输出流并强制写出所有缓冲的输出字节。 5 public final void writeBytes(String s) throws IOException 将字符串以字节序列写入到底层的输出流,字符串中每个字符都按顺序写入,并丢弃其高八位。 实例 下面的例子演示了DataInputStream和DataOutputStream的使用,该例从文本文件test.txt中读取5行,并转换成大写字母,最后保存在另一个文件test1.txt中。 import java.io.*; public class Test{ public static void main(String args[])throws IOException{ DataInputStream d = new DataInputStream(new FileInputStream("test.txt")); DataOutputStream out = new DataOutputStream(new FileOutputStream("test1.txt")); String count; while((count = d.readLine()) != null){ String u = count.toUpperCase(); System.out.println(u); out.writeBytes(u + " ,"); } d.close(); out.close(); } }...

Java boolean数据类型-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

Java boolean数据类型

Java数据类型教程 – Java boolean数据类型 布尔数据类型只有两个有效值:true和false。 这两个值称为布尔值字面量。 我们可以使用布尔值字面量 boolean done; // Declares a boolean variable named done done = true; // Assigns true to done 布尔变量不能转换为任何其他数据类型,反之亦然。 boolean 是所有关系运算符返回的类型,如<b。 boolean 是控制控制语句的条件表达式所需的类型,例如if和for。 例子 这里是一个程序,演示布尔类型: public class Main { public static void main(String args[]) { boolean b; b = false; System.out.println("b is " + b); b = true; System.out.println("b is " + b); b = false; if (b) System.out.println("This is not executed."); // outcome of a relational operator is a boolean value System.out.println("10 > 9 is " + (10 > 9)); } } 上面的代码生成以下结果。

Java 数据输入流

Java IO教程 – Java数据输入流 DataInputStream可以从输入流中读取Java基本数据类型值。 DataInputStream类包含读取数据类型值的读取方法。例如,要读取int值,它包含一个readInt()方法;读取char值,它有一个readChar()方法等。它还支持使用readUTF()方法读取字符串。 例子 以下代码显示了如何从文件读取原始值和字符串。 import java.io.DataInputStream; import java.io.FileInputStream; public class Main { public static void main(String[] args) { String srcFile = "primitives.dat"; try (DataInputStream dis = new DataInputStream(new FileInputStream(srcFile))) { // Read the data in the same order they were written int intValue = dis.readInt(); double doubleValue = dis.readDouble(); boolean booleanValue = dis.readBoolean(); String msg = dis.readUTF(); System.out.println(intValue); System.out.println(doubleValue); System.out.println(booleanValue); System.out.println(msg); } catch (Exception e) { e.printStackTrace(); } } } 上面的代码生成以下结果: java.io.FileNotFoundException: primitives.dat (No such file or directory) at java.io.FileInputStream.open(Native Method) at java.io.FileInputStream.<init>(FileInputStream.java:146) at java.io.FileInputStream.<init>(FileInputStream.java:101) at file.main(file.java:8)

Java 字符串类型

Java数据类型教程 – Java字符串类型 零个或多个字符的序列称为字符串。 在Java程序中,字符串由java.lang.String类的对象表示。 String类是不可变的。 String对象的内容在创建后无法修改。 String类有两个伴随类,java.lang.StringBuilder和java.lang.StringBuffer。伴随类是可变的。如果我们要修改字符串的内容,我们应该使用它们。 字符串字面量 字符串字面值由用双引号括起来的零个或多个字符序列组成。所有字符串文字都是String类的对象。 下面列出了字符串字面量的示例 "" // An Empty string "Hello" // A string literal consisting of 5 characters "Just a string literal" 我们可以将两个多个字符串文字加到一个字符串文字。 "Hello" + "Hi" 字符串文字不能分成两行。 "He llo" // A compiler error 要断开两行中的“Hello”,请使用字符串连接运算符(+)中断它。 "He" + "llo" 或者 "He" + "llo" 在字符串文字中转义序列字符 我们可以使用所有转义序列字符形成一个字符串文字。 要在字符串文字中包括换行符和回车字符。使用\ n和\ r,如下所示: "\n" // A string literal with a line feed "\r" // A string literal with a carriage return Unicode转义字符串字面量 字符也可以表示为\ uxxxx形式的Unicode转义,其中x是十六进制数字(0-9或A-F)。 在字符串文字中,字符“A”(第一个大写英文字母)也可以写为“\ u0041”,例如,Apple和\ u0041pple在Java中被视为相同。

Java 变量-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

Java 变量

Java教程 – Java变量 变量由标识符,类型和可选的初始化程序定义。变量还具有范围(可见性/生存期)。 Java变量类型 在Java中,必须先声明所有变量,然后才能使用它们。变量声明的基本形式如下所示: type identifier [ = value][, identifier [= value] ...] ; 变量定义有三个部分: 类型可以是int或float。 identifier是变量的名称。 初始化包括等号和值。 要声明指定类型的多个变量,请使用逗号分隔的列表。 int a, b, c; // declares three ints, a, b, and c. int d = 3, e, f = 5; // declares three more ints, initializing d and f. 以下变量在一个表达式中定义和初始化。 public class Main { public static void main(String[] args) { byte z = 2; // initializes z. double pi = 3.14; // declares an approximation of pi. char x = 'x'; // the variable x has the value 'x'. } } 在声明之前不能使用变量。 public class Main { public static void main(String[] args) { count = 100; // Cannot use count before it is declared! int count; } } 编译上面的代码会生成以下错误消息: 赋值运算符...

Java 布尔运算符-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

Java 布尔运算符

Java教程 – Java布尔运算符 布尔逻辑运算符操作布尔操作数。 逻辑运算符列表 下表列出了所有Java布尔逻辑运算符。 运算符 结果 & 逻辑AND | 逻辑或 ^ 逻辑异或(异或) || 短路OR && 短路AND ! 逻辑一元NOT &= AND分配 |= OR分配 ^= XOR分配 == 等于 != 不等于 ? : 三元if-then-else True table 下表显示了每个逻辑操作的效果: A B A | B A& B A ^ B !A False False False False False True True False True False True False False True True False True True True True True True False False 以下程序演示了布尔逻辑运算符。 public class Main { public static void main(String args[]) { boolean a = true; boolean b = false; boolean c = a | b; boolean d = a & b; boolean e = a ^ b; boolean f = (!a & b) | (a & !b); boolean g...

Java8 Base64-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

Java8 Base64

Java8 Base64 Java 8 新特性 在Java 8中,Base64编码已经成为Java类库的标准。 Java 8 内置了 Base64 编码的编码器和解码器。 Base64工具类提供了一套静态方法获取下面三种BASE64编解码器: 基本:输出被映射到一组字符A-Za-z0-9+/,编码不添加任何行标,输出的解码仅支持A-Za-z0-9+/。 URL:输出映射到一组字符A-Za-z0-9+_,输出是URL和文件。 MIME:输出隐射到MIME友好格式。输出每行不超过76字符,并且使用’\r’并跟随’\n’作为分割。编码输出最后没有行分割。 内嵌类 序号 内嵌类 & 描述 1 static class Base64.Decoder 该类实现一个解码器用于,使用 Base64 编码来解码字节数据。 2 static class Base64.Encoder 该类实现一个编码器,使用 Base64 编码来编码字节数据。 方法 序号 方法名 & 描述 1 static Base64.Decoder getDecoder() 返回一个 Base64.Decoder ,解码使用基本型 base64 编码方案。 2 static Base64.Encoder getEncoder() 返回一个 Base64.Encoder ,编码使用基本型 base64 编码方案。 3 static Base64.Decoder getMimeDecoder() 返回一个 Base64.Decoder ,解码使用 MIME 型 base64 编码方案。 4 static Base64.Encoder getMimeEncoder() 返回一个 Base64.Encoder ,编码使用 MIME 型 base64 编码方案。 5 static Base64.Encoder getMimeEncoder(int lineLength, byte[] lineSeparator) 返回一个 Base64.Encoder ,编码使用 MIME 型 base64 编码方案,可以通过参数指定每行的长度及行的分隔符。 6 static Base64.Decoder getUrlDecoder() 返回一个 Base64.Decoder ,解码使用 URL 和文件名安全型 base64 编码方案。 7 static Base64.Encoder getUrlEncoder() 返回一个 Base64.Encoder ,编码使用 URL 和文件名安全型 base64 编码方案。 注意:Base64 类的很多方法从 java.lang.Object 类继承。...

Java 8 Nashorn JavaScript-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

Java 8 Nashorn JavaScript

Java 8 Nashorn JavaScript Java 8 新特性 Nashorn 一个 javascript 引擎。 从JDK 1.8开始,Nashorn取代Rhino(JDK 1.6, JDK1.7)成为Java的嵌入式JavaScript引擎。Nashorn完全支持ECMAScript 5.1规范以及一些扩展。它使用基于JSR 292的新语言特性,其中包含在JDK 7中引入的 invokedynamic,将JavaScript编译成Java字节码。 与先前的Rhino实现相比,这带来了2到10倍的性能提升。 jjs jjs是个基于Nashorn引擎的命令行工具。它接受一些JavaScript源代码为参数,并且执行这些源代码。 例如,我们创建一个具有如下内容的sample.js文件: print('Hello World!'); 打开控制台,输入以下命令: $ jjs sample.js 以上程序输出结果为: Hello World! jjs 交互式编程 打开控制台,输入以下命令: $ jjs jjs> print("Hello, World!") Hello, World! jjs> quit() >> 传递参数 打开控制台,输入以下命令: $ jjs -- a b c jjs> print('字母: ' +arguments.join(", ")) 字母: a, b, c jjs> Java 中调用 JavaScript 使用 ScriptEngineManager, JavaScript 代码可以在 Java 中执行,实例如下: import javax.script.ScriptEngineManager; import javax.script.ScriptEngine; import javax.script.ScriptException; public class Java8Tester { public static void main(String args[]){ ScriptEngineManager scriptEngineManager = new ScriptEngineManager(); ScriptEngine nashorn = scriptEngineManager.getEngineByName("nashorn"); String name = "W3CSchool"; Integer result = null; try { nashorn.eval("print('" + name + "')"); result = (Integer) nashorn.eval("10 + 2"); }catch(ScriptException e){ System.out.println("执行脚本错误:...

Java 8 日期时间 API-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

Java 8 日期时间 API

Java 8 日期时间 API Java 8 新特性 Nashorn 一个 javascript 引擎。 Java 8通过发布新的Date-Time API (JSR 310)来进一步加强对日期与时间的处理。 在旧版的 Java 中,日期时间 API 存在诸多问题,其中有: 非线程安全 − java.util.Date 是非线程安全的,所有的日期类都是可变的,这是Java日期类最大的问题之一。 设计很差 − Java的日期/时间类的定义并不一致,在java.util和java.sql的包中都有日期类,此外用于格式化和解析的类在java.text包中定义。java.util.Date同时包含日期和时间,而java.sql.Date仅包含日期,将其纳入java.sql包并不合理。另外这两个类都有相同的名字,这本身就是一个非常糟糕的设计。 时区处理麻烦 − 日期类并不提供国际化,没有时区支持,因此Java引入了java.util.Calendar和java.util.TimeZone类,但他们同样存在上述所有的问题。 Java 8 在 java.time 包下提供了很多新的 API。以下为两个比较重要的 API: Local(本地) − 简化了日期时间的处理,没有时区的问题。 Zoned(时区) − 通过制定的时区处理日期时间。 新的java.time包涵盖了所有处理日期,时间,日期/时间,时区,时刻(instants),过程(during)与时钟(clock)的操作。 本地化日期时间 API LocalDate/LocalTime 和 LocalDateTime 类可以在处理时区不是必须的情况。代码如下: import java.time.LocalDate; import java.time.LocalTime; import java.time.LocalDateTime; import java.time.Month; public class Java8Tester { public static void main(String args[]){ Java8Tester java8tester = new Java8Tester(); java8tester.testLocalDateTime(); } public void testLocalDateTime(){ // 获取当前的日期时间 LocalDateTime currentTime = LocalDateTime.now(); System.out.println("当前时间: " + currentTime); LocalDate date1 = currentTime.toLocalDate(); System.out.println("date1: " + date1); Month month = currentTime.getMonth(); int day = currentTime.getDayOfMonth(); int seconds = currentTime.getSecond(); System.out.println("月: " + month +", 日: " + day +", 秒: "...

Java 实例 – 获取 URL 响应头信息-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

Java 实例 – 获取 URL 响应头信息

Java 实例 – 获取 URL 响应头信息 Java 实例 以下实例演示了如何获取指定 URL 的响应头信息: /* author by w3cschool.cn Main.java */ import java.io.IOException; import java.net.URL; import java.net.URLConnection; import java.util.Map; import java.util.Set; public class Main { public static void main(String[] args) throws IOException{ URL url = new URL("http://www.w3cschool.cn"); URLConnection conn = url.openConnection(); Map headers = conn.getHeaderFields(); Set<String> keys = headers.keySet(); for( String key : keys ){ String val = conn.getHeaderField(key); System.out.println(key+" "+val); } System.out.println( conn.getLastModified() ); } } 以上代码运行输出结果为: Transfer-Encoding chunked null HTTP/1.1 200 OK Server Tengine/1.3.0 Connection keep-alive Vary Cookie Date Mon, 04 May 2015 03:54:05 GMT X-Pingback //www.w3cschool.cn/xmlrpc.php X-Powered-By PHP/5.3.15 Content-Type text/html; charset=UTF-8 Java 实例