精华内容
下载资源
问答
  • 问题:计算大气环流1142项指数的全部年份的逐月平均值并输出成文本,计算2017年每个指数的方差并输出成文本。(无效值 -999 不计算在内)1 public class Test {23 public static void main(String[] args) {4 ...

    问题:计算出大气环流1到142项指数的全部年份的逐月平均值并输出成文本,计算2017年每个指数的方差并输出成文本。(无效值 -999 不计算在内)

    1 public class Test {

    2

    3 public static void main(String[] args) {

    4 boolean isFirst = true;

    5 try {

    6 File file = new File("E:\\index_all.txt");

    7 File outFile = new File("E:\\index.txt");

    8 if (file.isFile() && file.exists()) { //判断文件或目录是否存在

    9 InputStreamReader reader = new InputStreamReader(new FileInputStream(file), "utf-8");

    10 BufferedReader bufferedReader = new BufferedReader(reader);

    11 OutputStreamWriter writer = new OutputStreamWriter(new FileOutputStream(outFile), "gbk");

    12 BufferedWriter bufferedWriter = new BufferedWriter(writer);

    13 OutputStreamWriter writer2017 = new OutputStreamWriter(new FileOutputStream(outFile), "gbk");

    14 BufferedWriter bufferedWriter2017 = new BufferedWriter(writer);

    15 String lineTxt = null;

    16 List list = new ArrayList<>();

    17 while ((lineTxt = bufferedReader.readLine()) != null) {

    18 System.out.println(lineTxt);

    19 list.add(lineTxt.replace(" ", ","));

    20 // bufferedWriter.write(lineTxt+"\r\n");

    21 }

    22 bufferedWriter.write(list.get(0).replace(",", " ") + "\tavg\r\n");

    23

    24 String[] arr = new String[list.size()];

    25 arr = list.toArray(arr);

    26 for (int i = 1; i < arr.length; i++) {

    27 String[] line = arr[i].split(",");

    28 String[] line2017 = arr[0].split(",");

    29 double avg = 0, sum = 0;

    30 /*int a = 0;

    31 for (int j = 9; j < line.length; j++) {

    32 if (line[j].length() > 0 && !line[j].startsWith("-999")) {

    33 sum += Double.valueOf(line[j]);

    34 a += 1;

    35 }

    36 }

    37 avg = sum / a;*/

    38 avg = getAvg(line);

    39 bufferedWriter.write(list.get(i).replace(",", " ") + "\t" + String.format("%.3f", avg) + "\r\n"); //保留3位小数

    40 bufferedWriter.flush(); //将缓冲区的内容输出

    41

    42 // 计算2017年每个指数的方差并输出成文本

    43 double powAvg = 0, powSum = 0;

    44 if (line[4].startsWith("2017")) {

    45 if (isFirst) {

    46 bufferedWriter2017.write("\r\n\r\n" + line2017[3] + "\t平均值" + "\t方差\r\n");

    47 isFirst = false;

    48 }

    49 double avg2017 = getAvg(line);

    50 int p = 0;

    51 for (int j = 9; j < line.length; j++) {

    52 if (line[j].length() > 0 && !line[j].startsWith("-999")) {

    53 powSum += Math.pow((Double.valueOf(line[j]) - avg2017), 2); //计算平方和

    54 p += 1;

    55 }

    56 }

    57 powAvg = powSum / p; //计算方差

    58 bufferedWriter2017.write(line[4] + "\t" + String.format("%.3f", avg) + "\t" + String.format("%.3f", powAvg) + "\r\n");

    59 }

    60 }

    61 bufferedWriter.flush(); //将缓冲区的内容输出

    62 bufferedWriter2017.flush();

    63 bufferedWriter.close(); //①先关BufferedWriter

    64 bufferedWriter2017.close();

    65 writer.close(); //②后关OutputStreamWriter

    66 writer2017.close();

    67 bufferedReader.close();

    68 reader.close();

    69 } else {

    70 System.out.println("找不到指定的文件");

    71 }

    72 } catch (Exception e) {

    73 System.out.println("读取文件内容出错");

    74 e.printStackTrace();

    75 }

    76 }

    77

    78 private static double getAvg(String[] line) {

    79 double sum = 0;

    80 int a = 0;

    81 for (int j = 9; j < line.length; j++) {

    82 if (line[j].length() > 0 && !line[j].startsWith("-999")) {

    83 sum += Double.valueOf(line[j]);

    84 a += 1;

    85 }

    86 }

    87 return sum / a;

    88 }

    89 }

    标签:Java,String,读写操作,int,length,bufferedWriter,本地,new,line

    来源: https://www.cnblogs.com/wq-code/p/11178572.html

    展开全文
  • public static void Test(String oldfilePath,String newfilePath){ File file = new File(oldfilePath); //判断文件存在并且是文件 Boolean boo = file.exists()&&file.isFile(); System.out.println...

    package com;
    import java.io.*;

    public class test {

    public static void Test(String oldfilePath,String newfilePath){
        File file = new File(oldfilePath);
        //判断文件存在并且是文件
        Boolean boo = file.exists()&&file.isFile();
        System.out.println(boo);
        if (boo) {
            BufferedReader bufferedReader = null;
            try {
                //构造一个BufferedReader类来读取文件
                bufferedReader = new BufferedReader(new FileReader(file));
                String linetxt = null;
                //result用来存储文件内容
                StringBuilder result = new StringBuilder();
                //按使用readLine方法,一次读一行
                while ((linetxt = bufferedReader.readLine()) != null) {
                    System.out.println(linetxt);
                    String newconttent = linetxt.replace("china","中国");//替换
                    result.append(newconttent);
                    File newfile = new File(newfilePath);
                    PrintStream ps = new PrintStream(new FileOutputStream(newfile, true)); 
                    ps.println(newconttent);// 往aim.txt文件里写入字符串
                }
                //输出读出的所有数据(StringBuilder类型)
                System.out.println(result);
                //对文件内容操作
    
    
            } catch (Exception e) {
                System.out.println("读取文件内容出错");
                e.printStackTrace();
            }finally {
                try {
                    bufferedReader.close();
                } catch (IOException e1) {
                    e1.printStackTrace();
                }
            }
        }else{
            System.out.println("找不到指定的文件");
        }
    }
    
    
    
    public static void main(String argv[]){
        String oldfilePath = "E:\\毕业设计图\\test\\data\\content.txt";//content.txt路径。记得改
    
        String newfilePath = "E:\\毕业设计图\\test\\data\\aim.txt";//aim.txt路径,记得改
        Test(oldfilePath,newfilePath);
    }
    

    }

    展开全文
  • 知道目录后,可以列该目录下所属的文件 import java.awt.*; import java.awt.event.*; import java.io.*; import javax.swing.*; //列目录下的文件 public class ListFileDemo extends JFrame{ JTextField ...
  • 问题:计算大气环流1142项指数的全部年份的逐月平均值并输出成文本,计算2017年每个指数的方差并输出成文本。(无效值 -999 不计算在内) 1 public class Test { 2 3 public static void main(String[]...

    问题:计算出大气环流1到142项指数的全部年份的逐月平均值并输出成文本,计算2017年每个指数的方差并输出成文本。(无效值 -999 不计算在内)

     1 public class Test {
     2 
     3     public static void main(String[] args) {
     4         boolean isFirst = true;
     5         try {
     6             File file = new File("E:\\index_all.txt");
     7             File outFile = new File("E:\\index.txt");
     8             if (file.isFile() && file.exists()) { //判断文件或目录是否存在
     9                 InputStreamReader reader = new InputStreamReader(new FileInputStream(file), "utf-8");
    10                 BufferedReader bufferedReader = new BufferedReader(reader);
    11                 OutputStreamWriter writer = new OutputStreamWriter(new FileOutputStream(outFile), "gbk");
    12                 BufferedWriter bufferedWriter = new BufferedWriter(writer);
    13                 OutputStreamWriter writer2017 = new OutputStreamWriter(new FileOutputStream(outFile), "gbk");
    14                 BufferedWriter bufferedWriter2017 = new BufferedWriter(writer);
    15                 String lineTxt = null;
    16                 List<String> list = new ArrayList<>();
    17                 while ((lineTxt = bufferedReader.readLine()) != null) {
    18                     System.out.println(lineTxt);
    19                     list.add(lineTxt.replace(" ", ","));
    20 //                    bufferedWriter.write(lineTxt+"\r\n");
    21                 }
    22                 bufferedWriter.write(list.get(0).replace(",", " ") + "\tavg\r\n");
    23 
    24                 String[] arr = new String[list.size()];
    25                 arr = list.toArray(arr);
    26                 for (int i = 1; i < arr.length; i++) {
    27                     String[] line = arr[i].split(",");
    28                     String[] line2017 = arr[0].split(",");
    29                     double avg = 0, sum = 0;
    30                     /*int a = 0;
    31                     for (int j = 9; j < line.length; j++) {
    32                         if (line[j].length() > 0 && !line[j].startsWith("-999")) {
    33                             sum += Double.valueOf(line[j]);
    34                             a += 1;
    35                         }
    36                     }
    37                     avg = sum / a;*/
    38                     avg = getAvg(line);
    39                     bufferedWriter.write(list.get(i).replace(",", " ") + "\t" + String.format("%.3f", avg) + "\r\n"); //保留3位小数
    40                     bufferedWriter.flush(); //将缓冲区的内容输出
    41 
    42                     // 计算2017年每个指数的方差并输出成文本
    43                     double powAvg = 0, powSum = 0;
    44                     if (line[4].startsWith("2017")) {
    45                         if (isFirst) {
    46                             bufferedWriter2017.write("\r\n\r\n" + line2017[3] + "\t平均值" + "\t方差\r\n");
    47                             isFirst = false;
    48                         }
    49                         double avg2017 = getAvg(line);
    50                         int p = 0;
    51                         for (int j = 9; j < line.length; j++) {
    52                             if (line[j].length() > 0 && !line[j].startsWith("-999")) {
    53                                 powSum += Math.pow((Double.valueOf(line[j]) - avg2017), 2); //计算平方和
    54                                 p += 1;
    55                             }
    56                         }
    57                         powAvg = powSum / p; //计算方差
    58                         bufferedWriter2017.write(line[4] + "\t" + String.format("%.3f", avg) + "\t" + String.format("%.3f", powAvg) + "\r\n");
    59                     }
    60                 }
    61                 bufferedWriter.flush(); //将缓冲区的内容输出
    62                 bufferedWriter2017.flush();
    63                 bufferedWriter.close(); //①先关BufferedWriter 
    64                 bufferedWriter2017.close();
    65                 writer.close(); //②后关OutputStreamWriter 
    66                 writer2017.close();
    67                 bufferedReader.close();
    68                 reader.close();
    69             } else {
    70                 System.out.println("找不到指定的文件");
    71             }
    72         } catch (Exception e) {
    73             System.out.println("读取文件内容出错");
    74             e.printStackTrace();
    75         }
    76     }
    77 
    78     private static double getAvg(String[] line) {
    79         double sum = 0;
    80         int a = 0;
    81         for (int j = 9; j < line.length; j++) {
    82             if (line[j].length() > 0 && !line[j].startsWith("-999")) {
    83                 sum += Double.valueOf(line[j]);
    84                 a += 1;
    85             }
    86         }
    87         return sum / a;
    88     }
    89 }

    字节流和字符流:

    • 字节流:一般是带有Stream字样的,如InputStream,FileInputStream等等,字节流处理的最小单位是字节。
    • 字符流:一般是带有Reader或Writer字样的,如InputStreamReader等等,字符流处理的最小单位是字符。

    02:14:33

    时间紧,任务重,上面写的太糙了...

    修改如下

     1 public class Test {
     2     public static void main(String[] args) {
     3         boolean isFirst = true;
     4         File file = new File("E:\\index_all.txt");
     5         if (file.isFile() && file.exists()) { //判断文件或目录是否存在
     6             try {
     7                 InputStream in = new FileInputStream(file);
     8                 File outFile = new File("E:\\index.txt");
     9                 OutputStream out = new FileOutputStream(outFile);
    10                 try {
    11                     Reader reader = new InputStreamReader(in, "utf-8");
    12                     BufferedReader bufferedReader = new BufferedReader(reader);
    13                     Writer writer = new OutputStreamWriter(out, "gbk");
    14                     BufferedWriter bufferedWriter = new BufferedWriter(writer);
    15                     BufferedWriter bufferedWriter2017 = new BufferedWriter(writer);
    16                     String lineTxt = null;
    17                     List<String> list = new ArrayList<>();
    18                     try {
    19                         while ((lineTxt = bufferedReader.readLine()) != null) {
    20                             System.out.println(lineTxt);
    21                             list.add(lineTxt.replace(" ", ","));
    22 //                            bufferedWriter.write(lineTxt + "\r\n");
    23                         }
    24                     } catch (IOException e) {
    25                         System.out.println("异常:读取文件出错");
    26                         e.printStackTrace();
    27                     }
    28 
    29                     try {
    30                         bufferedWriter.write(list.get(0).replace(",", " ") + "\tavg\r\n");
    31                         String[] arr = new String[list.size()];
    32                         arr = list.toArray(arr); // 将List集合转成String[]数组
    33                         for (int i = 1; i < arr.length; i++) {
    34                             String[] line = arr[i].split(",");
    35                             String[] line2017 = arr[0].split(",");
    36                             double avg = 0, sum = 0;
    37                             avg = getAvg(line);
    38                             bufferedWriter.write(list.get(i).replace(",", " ") + "\t" + String.format("%.3f", avg) + "\r\n"); // 保留3位小数
    39                             bufferedWriter.flush(); //将缓冲区的内容输出[冲刷出流(刷新此输出流),将所有缓冲的数据强制发送到目的地]
    40 
    41                             // 计算2017年每个指数的方差并输出成文本
    42                             double powAvg = 0, powSum = 0;
    43                             if (line[4].startsWith("2017")) {
    44                                 if (isFirst) {
    45                                     bufferedWriter2017.write("\r\n\r\n" + line2017[3] + "\t平均值" + "\t方差\r\n");
    46                                     isFirst = false;
    47                                 }
    48                                 double avg2017 = getAvg(line);
    49                                 int p = 0;
    50                                 for (int j = 9; j < line.length; j++) {
    51                                     if (line[j].length() > 0 && !line[j].startsWith("-999")) {
    52                                         powSum += Math.pow((Double.valueOf(line[j]) - avg2017), 2);
    53                                         p += 1;
    54                                     }
    55                                 }
    56                                 powAvg = powSum / p;
    57                                 bufferedWriter2017.write(line[4] + "\t" + String.format("%.3f", avg) + "\t" + String.format("%.3f", powAvg) + "\r\n");
    58                             }
    59                         }
    60                         bufferedWriter.flush(); //将缓冲区的内容输出[冲刷出流(刷新此输出流),将所有缓冲的数据强制发送到目的地]
    61                         bufferedWriter2017.flush();
    62                     } catch (IOException e) {
    63                         System.out.println("异常:写入文件出错");
    64                         e.printStackTrace();
    65                     } finally {
    66                         try {
    67                             out.close(); // 直接调用最外层的close()就可以,类似链条 你关闭最外面的 最外面的关闭里面的 里面的关闭更里面的;
    68                             in.close();
    69                         } catch (IOException e) {
    70                             System.out.println("异常:不支持编码");
    71                             e.printStackTrace();
    72                         }
    73                     }
    74                 } catch (UnsupportedEncodingException e) {
    75                     System.out.println("异常:不支持编码");
    76                     e.printStackTrace();
    77                 }
    78             } catch (FileNotFoundException e) {
    79                 System.out.println("异常:文件未找到");
    80                 e.printStackTrace();
    81             }
    82         } else {
    83             System.out.println("文件或目录不存在");
    84         }
    85     }
    86 
    87     private static double getAvg(String[] line) {
    88         double sum = 0;
    89         int a = 0;
    90         for (int j = 9; j < line.length; j++) {
    91             if (line[j].length() > 0 && !line[j].startsWith("-999")) {
    92                 sum += Double.valueOf(line[j]);
    93                 a += 1;
    94             }
    95         }
    96         return sum / a;
    97     }
    98 }

     读取文件思路整理:(写入文件思路相反,请自行百度)

     

    转载于:https://www.cnblogs.com/wq-code/p/11178572.html

    展开全文
  • 一个 javaTest程序,列所有目录下的*.java 文件,把子目录下的 JAVA文件也打印出来。package javaiotest;import java.io.File;public class ListFile {public void listJavaFile(String fileName) {File file = ...

    写一个 javaTest程序,列出所有目录下的*.java 文件,把子目录下的 JAVA文件也打印出来。

    package javaiotest;

    import java.io.File;

    public class ListFile {

    public void listJavaFile(String fileName) {

    File file = new File(fileName);

    if (file.isDirectory()) {

    File[] files = file.listFiles();

    for (int i = 0; i < files.length; i++) {

    String name = files[i].getName();

    if (name.trim().toLowerCase().endsWith(".java")) {

    System.out.println(name + "\t");

    }

    if (files[i].isDirectory()) {

    String path = files[i].getPath();

    listJavaFile(path);

    }

    }

    }

    }

    public static void main(String[] args) {

    // TODO Auto-generated method stub

    ListFile listfile = new ListFile();

    listfile.listJavaFile("E:\\javaworkspace\\mytest1\\src\\threadtest");

    }

    }

    展开全文
  • 实现方法:暂时写一种方法,将字符串写出到本地文件,以后可以补充更多种方法: public static voidmain(String[] args) {/*** ==============准备一些数据-start===============*/String fileName=UUID.randomUUID...
  •  暂时写一种方法,将字符串写出到本地文件,以后可以补充更多种方法: public static void main(String[] args) { /** * ==============准备一些数据-start=============== */ String fileName = U...
  • 【客户端】输出流,写出文件数据服务端。 【服务端】输入流,读取文件数据服务端程序。 【服务端】输出流,写出文件数据服务器硬盘中。 服务端实现: public class FileUpload_Server { public static void...
  • 前言String字符串在Java应用中使用非常频繁,只有理解了它在虚拟机中的实现机制,才能写出健壮的应用,本文使用的JDK版本为1.8.0_3。常量池Java代码被编译成class文件时,会生成一个常量池(Constant pool)的数据结构...
  • JAVA WEB框架,java网站一个模块只用一个文件 以前的servlet在现在的开发中已经不怎么常见,因为操作起来比较原始和麻烦。有些人就是不安于现状去改造它。 做得好的有Struts,Hybernate,Spring那么这些框架都是很...
  • OutputStream(输出流):输出流是用来写出数据的。 write(byte b[], int off, int len): 写入字节数组中的len字节输出流。参数中数组b[]就是待写入的字节数组(不一定全部写入),从第offset位开始写入,每次写入的...
  • 多例模式java实现

    热门讨论 2012-12-25 20:36:47
    单例模式的扩展及应用。 编写一个类LimitInstanceClass,该类最多可以实例化指定个数实例。实例的个数用配置文件InstanceLimit.cfg指定。...设置InstanceLimit.cfg的内容为3,写出你的程序的运行结果。
  • 【客户端】输出流,写出文件数据服务端。 【服务端】输入流,读取文件数据服务端程序。 【服务端】输出流,写出文件数据服务器硬盘中。 客户端实现 public class C_Test_02 { public static void main...
  • java源码包---java 源码 大量 实例

    千次下载 热门讨论 2013-04-18 23:15:26
     Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、信息到文件、关闭输出流。 Java绘制图片火焰效果 1个目标文件 摘要:Java源码,图形操作,火焰...
  • 一个是从一个数组中找另一个数组的位置,类似于 String 类中的 indexOf 的功能,另一个是从一个数组中提取另一个数组, 类似于 String 类中的 substring 的功能,为此我们可以专门两个方法,实现这种功能。...
  • 先说说我要做的事情吧,上一遍我已经写出了这么把文件夹进行压缩成一个zip包,所以在这个文章的基础上面就可以实现,但是问题是我这边要弄一个批量的操作,就是一次下载很多文件然后放目录中,在进行压缩,并且...
  • java源码包2

    千次下载 热门讨论 2013-04-20 11:28:17
     Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、信息到文件、关闭输出流。 Java绘制图片火焰效果 1个目标文件 摘要:Java源码,图形操作,火焰...
  • 以前了一个java的正规表达式的java工具类,分享一下,有用到的欢迎下载使用。 如果你有常用的定义好的,且测试通过的正规表达式,欢迎跟贴,也让我享用一下 . 类中用了 jakarta-oro-2.0.jar 包,请大家自己在 ...
  • java源码包3

    千次下载 热门讨论 2013-04-20 11:30:13
     Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、信息到文件、关闭输出流。 Java绘制图片火焰效果 1个目标文件 摘要:Java源码,图形操作,火焰...
  • java源码包4

    千次下载 热门讨论 2013-04-20 11:31:44
     Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、信息到文件、关闭输出流。 Java绘制图片火焰效果 1个目标文件 摘要:Java源码,图形操作,火焰...
  • 方法是,通过解析mutipart格式提交的数据,将普通field和文件field封装自定义的FormItem类对象中。代码如下: FormItem.java ``` public class FormItem { private String name; private String value; ...
  • JAVA上百实例源码以及开源项目

    千次下载 热门讨论 2016-01-03 17:37:40
     Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、信息到文件、关闭输出流。 Java绘制图片火焰效果 1个目标文件 摘要:Java源码,图形操作,火焰...
  • Java面试题大全

    2019-01-24 17:15:44
    1.Java有那些基本数据类型,String是不是基本数据类型,他们有何区别。 2.字符串的操作: 一个方法,实现字符串的反转,如:输入abc,输出cba 一个方法,实现字符串的替换,如:输入bbbwlirbbb,输出bbbhhtccc...
  • Java开发技术大全(500个源代码).

    热门讨论 2012-12-02 19:55:48
    ReadAndWriteFile.java 读入数据写出到文件 Student.java 定义一个用来序列化的类 ThreadIn.java 接收数据用的线程类 ThreadOut.java 发送数据用的线程类 TypeFile.java 显示文件内容的类 useScanner.java 用...
  • Java访问权限控制源代码 1个目标文件 摘要:Java源码,文件操作,权限控制 Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、信息到文件、关闭输出流...
  • import java.awt.Graphics;...我已经从硬盘里面拿了一张图片了,由我自己的getimage方法里面的两个println语句可以看出我可以输出这张图片的宽和高,但是为什么画的图没有显示在面板上呢?多谢各位解答!

空空如也

空空如也

1 2 3 4 5 ... 13
收藏数 259
精华内容 103
关键字:

java实现string写出到文件

java 订阅