您身边的网站建设专家
成功案例

【建站服务】盐城网站制作【盐城网站优化】盐城建网站、盐城微信公众号运营、盐城网页设计、盐城微信小程序商城-域名申请

日期: 2022-09-20 15:20:40 浏览数:9


​

上往建站提供服务器空间服务商,百度快照排名,网站托管,百度推广运营,致力于设计外包服务与源代码定制开发,360推广,搜狗推广,增加网站的能见度及访问量提升网络营销的效果,主营:网站公司,百度推广公司电话,官网搭建服务,网站服务企业排名,服务器空间,英文域名等业务,专业团队服务,效果好。


盐城网站制作【盐城网站优化】盐城建网站、盐城微信公众号运营、盐城网页设计、盐城微信小程序商城

盐城,江苏省地级市,长江三角洲中心区27城之一。 [1]  地处中国东部沿海地区,江苏省中部,东临黄海,南与南通接壤,西南与扬州、泰州为邻,西北与淮安市相连,北隔灌河和连云港市相望。 [2] 

盐城全市土地总面积16931平方千米,其中沿海滩涂面积4553平方千米。拥有江苏唯一的世界自然遗产中国黄(渤)海候鸟栖息地。 [3]  2019年末,全市户籍人口821.35万人,常住人口720.89万人 [4]  。

盐城海陆空交通便捷,基本形成高速公路、铁路、航空、海运、内河航运五位一体的立体化交通运输网络。南洋国际机场、盐城港大丰港区、滨海港区、射阳港区、响水港区成为国家一类开放口岸 [5]  ,盐城市成为同时拥有空港、海港两个一类开放口岸的地级市, [6]  是国家沿海发展和长三角一体化两大战略的交汇点。

然后采用 Simple JSON 库。

JSONParser parser = new JSONParser();try{
    JSONObject jObj = (JSONObject) parser.parse(new FileReader("data.json"));
    // TODO,对jObj对象进行处理} catch (IOException|ParseException e) {
    System.err.println(e.getMessage());}复制代码

若它是数组:

[{"id":1, "year":2015, "city":"San Francisco"},
 {"id":2, "year":2014, "city":"New York"},
 {"id":3, "year":2012, "city":"Los Angeles"}]复制代码

则可以解析整个 JSON 数组。

JSONParser parser = new JSONParser();try{
    JSONArray jArr = (JSONArray) parser.parse(new FileReader("data.json"));
    // TODO,对jObj对象进行处理} catch (IOException|ParseException e) {
    System.err.println(e.getMessage());}复制代码

 如果某个文件中确实每一行都是 JSON 对象,那么严格来说,该文件并不是合格的 JSON 数据结构。请参考 1.4.2 节,在那里读取文本文件时,是按照一次解析一行的方式来解析 JSON 对象的。

1.4.4 读取图像文件

使用图像作为学习算法的输入时,需要把图像格式(例如 PNG)转换为合适的数据结构,例如矩阵或向量。这里有几点需要注意。首先,图像是一个二维数组,它包括坐标 {x_1,x_2},以及对应的颜色或强度值集合 {y_1cdots},该集合的元素可以用单个整型值存储。若所需的只是以二维整型数组存储的原始数值(这里标记为 data),则可以用下面的代码读入这个缓冲的图像:

BufferedImage img = null;try {
    img = ImageIO.read(new File("Image.png"));
    int height = img.getHeight();
    int width = img.getWidth();
    int[][] data = new int[height][width];
    for (int i = 0; i < height; i++) {
        for (int j = 0; j < width; j++) {
            int rgb = img.getRGB(i, j); // 负整数
            data[i][j] = rgb;
        }
    }} catch (IOException e) {
    // 处理异常}复制代码

通过对整数进行移位操作,可以将其转换为 RGB 分量(红、绿、蓝):

int blue = 0x0000ff & rgb;int green = 0x0000ff & (rgb >> 8);int red = 0x0000ff & (rgb >> 16);int alpha = 0x0000ff & (rgb >> 24);复制代码

然而,可以用下面的方法从光栅中方便地获取该信息:

byte[] pixels = ((DataBufferByte) img.getRaster().getDataBuffer()).getData();for (int i = 0; i < pixels.length / 3 ; i++) {
    int blue = Byte.toUnsignedInt(pixels[3*i]);
    int green = Byte.toUnsignedInt(pixels[3*i+1]);
    int red = Byte.toUnsignedInt(pixels[3*i+2]);}复制代码

颜色可能并不重要,灰度级或许正是所需要的:

// 把RGB转换为灰度级(0~1),其中颜色值的范围是0~255double gray = (0.2126 * red + 0.7152 * green + 0.0722 * blue) / 255.0复制代码

此外,在某些场合,二维表示并不是必需的。通过把矩阵的每一行拼接到新向量上,可以把矩阵转换为向量,例如,oldsymbol{x}_n=oldsymbol{x}_1,oldsymbol{x}_2,cdots,其中向量维数 n 等于矩阵的行数乘以列数,即 m	imes p。在著名的手写图像数据集 MNIST 中,数据已经进行了纠正(居中与裁剪),并转换成二进制格式。因此需要一种专门格式读取该数据(见附录 A),但是它已经是向量(一维)而不是矩阵(二维)格式了。针对 MNIST 数据集的学习技术通常涉及这种向量化的格式。

1.4.5 写入文本文件

把数据写入到文件中的一般方式是采用 FileWriter 类,但是依旧要推荐采用 BufferedWriter 类,以防止任何输入 / 输出错误。通常做法是把想要写入文件的数据转换为单一的字符串。对于示例中的 3 个变量,可以采用所选择的分界符(要么是逗号,要么是  )来手动操作。

/* 对于每个 Record 记录实例 */String output = Integer.toString(record.id) + "," +Integer.toString(record.year) + "," + record.city;复制代码

在 Java 8 中,String.join(delimiter, elements) 方法是方便的。

/* 在Java 8中 */String newString = String.join(",", {"a", "b", "c"});/* 或者采用Iterator进行迭代 */String newString = String.join(",", myList);复制代码

此外,还可以使用 Apache Commons Lang 中的 StringUtils.join(elements, delimiter) 方法,或者在循环中使用原生类 StringBuilder。

/* 在 Java 7 中 */String[] strings = {"a", "b", "c"};/* 创建StringBuilder对象并添加第一个成员 */StringBuilder sb;sb.append(strings[0]);/* 略过第一个字符串,因为已经拥有它了 */for(int i = 1; i < strings.length, i++){
    /* 此处选择分隔符……对于制表符,也可以是	 */
    sb.append(",");
    sb.append(strings[i]);}String newString = sb.toString();复制代码

注意,连续地进行字符串串联操作(myString += myString_part)会调用 StringBuilder 类,因此也可以直接使用 StringBuilder 类(或者不用)。在任何情况下,字符串都是逐行写入的。注意,BufferedWriter.write(String) 方法不会写新行。如果想把数据的每条记录都写到单独的一行,则必须调用 BufferedWriter.newLine() 方法。

try(BufferedWriter bw = new BufferedWriter(new FileWriter("somefile.txt")) ) {
    for(String s : myStringList){
        bw.write(s);
        /* 不要忘记追加新行! */
        bw.newLine();
    }} catch (Exception e) {
    System.out.println(e.getMessage());}复制代码

前面的代码覆盖了文件名指定的文件中所有现存的数据。在某些场合,需要向现存文件追加数据。FileWriter 类有可选的布尔型字段 append,若不使用这个字段的话,则其默认值是 false。为了打开文件以追加到下一可用的行,可以采用下面的代码:

/* 设置FileWriter的append位,保留现有数据,并追加新数据 */try(BufferedWriter bw = new BufferedWriter(
    new FileWriter("somefile.txt", true))) {
    for(String s : myStringList){
        bw.write(s);
        /* 不要忘记追加新行! */
        bw.newLine();
    }} catch (Exception e) {
    System.out.println(e.getMessage());}复制代码

另一种选择是使用 PrintWriter 类,它将 BufferedWriter.FileWriter 对象作为参数。PrintWriter 类有个 println() 方法,无论在何种操作系统上,它都采用原生换行符。因此在代码中可以不用  。这样做的好处是,不用考虑添加那些麻烦的换行符。如果在你自己的计算机(以及相应的操作系统)上生成文本文件,并且是你自己使用这些文件,那么上述方法同样适用。下面是应用 PrintWriter 类的例子:

try(PrintWriter pw = new PrintWriter(new BufferedWriter(
    new FileWriter("somefile.txt"))) ) {
    for(String s : myStringList){
        /* 添加新行! */
        pw.println(s);
    }} catch (Exception e) {
    System.out.println(e.getMessage());}复制代码

对于 JSON 数据,这些方法都适用。采用 JSONObject.toString() 方法可以把每个 JSON 对象转换为 String,然后把这个 String 写入文件中。如果你正在写 JSON 对象,例如配置文件,就像下面一样简单:

JSONObject obj = ...try(BufferedWriter bw = new BufferedWriter(new FileWriter("somefile.txt")) ) {
    bw.write(obj.toString());}} catch (Exception e) {
    System.out.println(e.getMessage());}复制代码

当创建 JSON 数据文件(关于 JSON 对象的栈)时,遍历 JSONObjects 集合:

List<JSONObject> dataList = ...try(BufferedWriter bw = new BufferedWriter(new FileWriter("somefile.txt")) ) {
    for(JSONObject obj : dataList){
        bw.write(obj.toString());
        /* 不要忘记追加新行! */
        bw.newLine();
    }} catch (Exception e) {
    System.out.println(e.getMessage());}复制代码

如果文件是要累积的,那么不要忘记设置 FileWriter 中的追加位。只需通过在 FileWriter 中设置追加位,就可以把更多 JSON 记录添加到文件末尾:

try(BufferedWriter bw = new BufferedWriter(
    new FileWriter("somefile.txt", true)) ) {...}复制代码

1.5 掌握数据库操作

c51c866ffa1ab3457f2021e8bbdbcc1.jpg


盐城网站制作【盐城网站优化】盐城建网站、盐城微信公众号运营、盐城网页设计、盐城微信小程序商城


上往建站提供搭建网站,域名注册,官网备案服务,网店详情页设计,企业网店,专业网络店铺管理运营全托管公司咨询电话,服务器空间,微信公众号托管,网页美工排版,致力于域名申请,竞价托管,软文推广,全网营销,提供标准级专业技术保障,了却后顾之忧,主营:虚拟主机,网站推广,百度竞价托管,网站建设,上网建站推广服务,网络公司有哪些等业务,专业团队服务,效果好。

服务热线:400-111-6878 手机微信同号:18118153152(各城市商务人员可上门服务)


全国咨询热线:400-111-6878

地址:全国各地都有驻点商务

Copyright © 2021 通陆科技

网站建设:上往建站