当前位置: 首页 > news >正文

做海淘的网站网站优化具体怎么做

做海淘的网站,网站优化具体怎么做,重庆网站推广 软件,杭州企业排行榜1.概述 在这篇文章里#xff0c; 我们将探索不同的方式从文件中读取数据。 首先#xff0c; 学习通过标准的的Java类#xff0c;从classpath、URL或者Jar中加载文件。 然后#xff0c;学习通用BufferedReader, Scanner, StreamTokenizer, DataInputStream, SequenceInput…1.概述 在这篇文章里 我们将探索不同的方式从文件中读取数据。 首先 学习通过标准的的Java类从classpath、URL或者Jar中加载文件。 然后学习通用BufferedReader, Scanner, StreamTokenizer, DataInputStream, SequenceInputStream, FileChannel读取文件内容。也会讨论如何读取UTF-8编码的文件。 最后学习Java7和Java8中新的加载和读取文件的技术。 2.准备 2.1 输入文件 这篇文章的很多示例从名为fileTest.txt的文件读取文本内容文件包含 Hello,World! 有少量示例 我们会读取不同的文件 示例中会有说明。 2.2 辅助方法 很多示例都会用到共用的方法readFromInputStream 该方法将InputStream转化String private String readFromInputStream(InputStream inputStream)throws IOException {StringBuilder resultStringBuilder new StringBuilder();try (BufferedReader br new BufferedReader(new InputStreamReader(inputStream))) {String line;while ((line br.readLine()) ! null) {resultStringBuilder.append(line).append(\n);}}return resultStringBuilder.toString();}  3.从Classpath读取文件 3.1 使用标准Java 从src/main/resources读取文件fileTest.txt Testpublic void test() throws IOException {String expectedData Hello,World!;ClassReadFileTest clazz ReadFileTest.class;InputStream inputStream clazz.getResourceAsStream(/fileTest.txt);String data readFromInputStream(inputStream);Assert.assertThat(data, containsString(expectedData));} 在上面的代码中我们通过当前类的getResourceAsStream方法加载文件入参是绝对路径。 ClassLoader中相同的方法也可以使用。 ClassLoader classLoader getClass().getClassLoader(); InputStream inputStream classLoader.getResourceAsStream(fileTest.txt); String data readFromInputStream(inputStream); 这两种方法的主要区别是 当前类的ClassLoader的getResourceAsStream方法入参路径是从classpath开始。 而类实例的入参是相对于包路径但路径开始使用/符号 也是绝对路径。 特别要注意的是 文件打开读取完数据后 始终需要关闭 inputStream.close(); 3.2 使用commons-io库 另一个比较常用的方法是使用commons-io包里的FileUtils.readFileToString方法。 dependencygroupIdcommons-io/groupIdartifactIdcommons-io/artifactIdversion1.4/version/dependencyTestpublic void useCommonIO() throws IOException {String expectedData Hello,World!;ClassLoader classLoader getClass().getClassLoader();File file new File(classLoader.getResource(fileTest.txt).getFile());String data FileUtils.readFileToString(file, UTF-8);assertEquals(expectedData, data.trim());} 该方法入参是File对象。这个工具类的优点是不用编码InputStream实例的相关代码。 这个库还提供了IOUtils类。 Testpublic void useCommonIO2() throws IOException {String expectedData Hello,World!;FileInputStream fis new FileInputStream(src/test/resources/fileTest.txt);String data IOUtils.toString(fis, UTF-8);assertEquals(expectedData, data.trim());} 4.BufferedReader Test public void bufferedReader() throws IOException {String expected_value Hello,World!;String file src/test/resources/fileTest.txt;BufferedReader reader new BufferedReader(new FileReader(file));String currentLine reader.readLine();reader.close();assertEquals(expected_value, currentLine); } 当读取结束的时候 reader.readLine()会返回null 5.Java NIO NIO是在JDK7中添加。 5.1读取小文件 首先看一下关于Files.readAllLines的示例 Testpublic void readSmallFile()  throws IOException {String expected_value Hello,World!;Path path Paths.get(src/test/resources/fileTest.txt);String read Files.readAllLines(path).get(0);assertEquals(expected_value, read);} 入参Path对象Path可以认为是java.io.File的升级版本提供一些额外的功能。 如果读取的是二进制文件可以使用Files.readAllBytes()方法 5.2读取大文件 如果想要读取大文件 我们可以使用Files类和BufferedReader类。 Testpublic void readLargeFile() throws IOException {String expected_value Hello,World!;Path path Paths.get(src/test/resources/fileTest.txt);BufferedReader reader Files.newBufferedReader(path);String line reader.readLine();assertEquals(expected_value, line);} 5.3Files.lines 在JDK8中Files类增加了lines方法这个方法将返回StreamString。跟文件操作一样Stream需要显式调用的close()。Files API提供了很多简单读取文件的方法。 6.Scanner 下面我们将使用Scanner读取文件使用逗号(,)作为定界符(delimiter)。 Test public void whenReadWithScanner_thenCorrect()throws IOException {String file src/test/resources/fileTest.txt;Scanner scanner new Scanner(new File(file));scanner.useDelimiter(,);assertTrue(scanner.hasNext());assertEquals(Hello, scanner.next());assertEquals(World!, scanner.next());scanner.close(); } Scanner默认的定界符是空格。它适用于从控制台读取输入或者内容有固定定界符的内容时。 7.StreamTokenizer tokenizer会指出下一个token的类型String或Number。 tokenizer.nval - 如果类型为Number时读取该字段 tokenizer.sval - 如果类型为String时读取该字段 Test public void readWithTokenize()throws IOException {String file src/test/resources/fileTestTokenizer.txt;FileReader reader new FileReader(file);StreamTokenizer tokenizer new StreamTokenizer(reader);//  1tokenizer.nextToken();assertEquals(StreamTokenizer.TT_WORD, tokenizer.ttype);assertEquals(Hello, tokenizer.sval);//  2tokenizer.nextToken();assertEquals(StreamTokenizer.TT_NUMBER, tokenizer.ttype);assertEquals(1, tokenizer.nval, 0.0000001);//  3tokenizer.nextToken();assertEquals(StreamTokenizer.TT_EOF, tokenizer.ttype);reader.close(); } 8.DataInputStream 如果要读取二进制文件或者原生数据可以使用DataInputStream Test public void whenReadWithDataInputStream() throws IOException {String expectedValue Hello,World!;String file src/test/resources/fileTest.txt;String result null;DataInputStream reader new DataInputStream(new FileInputStream(file));int nBytesToRead reader.available();if(nBytesToRead 0) {byte[] bytes new byte[nBytesToRead];reader.read(bytes);result new String(bytes);}assertEquals(expectedValue, result); }package com.pl;import java.io.DataInputStream; import java.io.FileInputStream; import java.io.IOException;public class ccs_2 {public static void main(String[] args) throws IOException {String expectedValue ;String file C:\\Users\\Administrator\\Desktop\\1.txt;//result null;DataInputStream reader new DataInputStream(new FileInputStream(file));int nBytesToRead reader.available();if (nBytesToRead 0) {byte[] bytes new byte[nBytesToRead];reader.read(bytes);expectedValue new String(bytes);}System.out.printf(\n expectedValue);} } 9.FileChannel 如果读取的是一个大文件FileChannel速度会超过standard IO。 Test public void whenReadWithFileChannel()throws IOException {String expected_value Hello,World!;String file src/test/resources/fileTest.txt;RandomAccessFile reader new RandomAccessFile(file, r);FileChannel channel reader.getChannel();int bufferSize 1024;if (bufferSize channel.size()) {bufferSize (int) channel.size();}ByteBuffer buff ByteBuffer.allocate(bufferSize);channel.read(buff);buff.flip();assertEquals(expected_value, new String(buff.array()));channel.close();reader.close(); }package com.pl;import java.io.IOException; import java.io.RandomAccessFile; import java.nio.ByteBuffer; import java.nio.channels.FileChannel;public class ccs_2 {public static void main(String[] args) throws IOException {//throws IOException {String expected_value ;String file C:\\Users\\Administrator\\Desktop\\1.txt;RandomAccessFile reader new RandomAccessFile(file, r);FileChannel channel reader.getChannel();int bufferSize 1024;if (bufferSize channel.size()) {bufferSize (int) channel.size();}//}ByteBuffer buff ByteBuffer.allocate(bufferSize);channel.read(buff);buff.flip();expected_value new String(buff.array());//assertEquals(expected_value, new String(buff.array()));channel.close();reader.close();System.out.printf(\n expected_value);} }10.读取utf-8编码的文件   Test public void whenReadUTFEncodedFile()throws IOException {String expected_value 你好世界;String file src/test/resources/fileTestUtf8.txt;BufferedReader reader new BufferedReader(new InputStreamReader(new FileInputStream(file), UTF-8));String currentLine reader.readLine();reader.close();assertEquals(expected_value, currentLine); }package com.pl;import java.io.BufferedReader; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader;public class ccs_2 {public static void main(String[] args) throws IOException { // File file new File(C:\\Program Files); // // //System.out.println(file.list()); // String[] A file.list(); // for (int i 0; i A.length; i) { // System.out.printf(\n A[i]); // }String expected_value 你好世界;String file C:\\Users\\Administrator\\Desktop\\1.txt;BufferedReader reader new BufferedReader(new InputStreamReader(new FileInputStream(file), UTF-8));String currentLine reader.readLine();reader.close();System.out.printf(\n currentLine);} }11.从URL读取数据 Test public void readFromURL() throws IOException {URL urlObject new URL(https://www.baidu.com);URLConnection urlConnection urlObject.openConnection();InputStream inputStream urlConnection.getInputStream();String data readFromInputStream(inputStream); } 12.从jar包中读取文件 我们的目标是读取junit-4.12.jar包中的LICENSE-junit.txt文件。clazz只需要这个Jar中的类就行。 Test public void readFromJar() throws IOException {String expectedData Eclipse Public License;Class clazz Test.class;InputStream inputStream clazz.getResourceAsStream(/LICENSE-junit.txt);String data readFromInputStream(inputStream);Assert.assertThat(data, containsString(expectedData)); }
http://www.w-s-a.com/news/753337/

相关文章:

  • 做网站多少钱 优帮云嘉兴五县两区网站建设
  • 三亚旅游网站策划书企业网站建设的定位
  • 网站建设工作台账网站建设的实验结论
  • 商业网站建设平台制作软件的软件
  • 本地网站开发wordpress页面关键词和描述
  • 微网站 合同软件开发培训方案
  • 怎么做淘宝客网站备案广告公司图片大全
  • 微信小程序展示网站建设多少钱做网站用什么软件初二
  • 瀑布流资源网站模板打码网站建设
  • wordpress 支付宝打赏网站视觉优化的意义
  • 建设网站需要几个文件夹永久免费内存大服务器
  • 可信赖的手机网站建设wordpress 显示摘要
  • 谁给我一个企业邮箱认证wordpress优化攻略
  • 建站软件免费版下载涿州做网站的
  • html5网站开发西安哪家网站建设公司好
  • 怎么做网站赚广州番禺区是富人区吗
  • 服装网站推广方案戴尔网站建设成功
  • 手机网站布局国外可以用什么网站做问卷
  • 手机建网站网店logo设计图片免费
  • 装修网站有哪些wordpress外网访问错误
  • 个人做电影网站服务器放国外安全吗建设通app
  • 西安公司网站开发快站官网平台
  • 北京网站设计公司哪个好网站开发属于哪个部门
  • 现在海外做的比较好一点的网站网站报价书
  • 做整站优化漳州建网站
  • jsp网站建设期末作业搜索引擎优化的定义是什么
  • 网站建设一级页面二级页面WordPress托管如果使用插件
  • 网站导航栏设计代码织梦做泰文网站
  • 网站建设的定位是什么南通网站定制费用
  • 怎么seo网站推广能免费观看所有电视剧的app