有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java从数据库中提取数据字符串。txt文件

当我输入一个文件并试图提取打印的字符串并从中加倍时,我最终提取了文本本身的信息。我插入了一个系统。出来println进入我的while循环以打印文件中的行,它还打印额外的文本信息行。我试图只从文件中获取书面文本,忽略以下行:

\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\tx8640\ql\qnatural\pardirnatural“

我这样做是为了从文件中获取信息,用它们生成字符串数组。 该程序的目的是输入一个包含多行信息的文件(姓氏(字符串)、名(字符串)、账户余额(双倍)),分别提取每一行,将每一行字符串放入数组列表中,对数组列表进行排序(先按姓氏,然后按姓氏),然后输出一个文件,并输出名称。txt,包含新排序的行。行将被格式化为姓氏、名,然后是帐户余额,每个行之间只有一个空格。行数可能会有所不同

输入示例(来自.txt文件):

史密斯·查尔斯200.000

艾伦·德雷克5000.00

艾伦·特雷300.00

Burbis Zeik 400.00

赞里克6000.00

输出示例(写入文件Output.txt):

艾伦·德雷克5000.00

艾伦·特雷300.00

Burbis Zeik 400.00

史密斯·查尔斯200.000

赞里克6000.00

谢谢

    public static void main(String[] args) throws IOException {
    Scanner fileName = new Scanner(System.in);
    String file = fileName.next();
    String input;
      Scanner fileinput = null;
   // File inFile = new File("c:\\csc2310\\test.txt");
      File inFile = new File(file);
     int i = 0;
      try
      {
        fileinput = new Scanner(inFile);
        while(fileinput.hasNext())
        {

           i++;
           System.out.println(i);
           input = fileinput.nextLine();
            System.out.println(input);
        }
        fileinput.close();
      }catch(FileNotFoundException e)
      {
        System.out.println(e);
        System.exit(1);
      }
      finally
      {
          fileinput.close();
      }
 }

共 (2) 个答案

  1. # 1 楼答案

    这个问题与TextEdit(Mac OS文本编辑器)的保存方式有关。文本文件。我将相同的信息写入了JEdit,并用相同的扩展名保存了它,它删除了所有的文本信息行。谢谢你抽出时间

  2. # 2 楼答案

    你的绳子坏了。Java在读取时会自动将\字符填充为\

    因此你得到了

    "\\pard\\tx720\\tx1440\\tx2160\\tx2880\\tx3600\\tx4320\\tx5040\\tx5760\\tx6480\\tx7200\\tx7920\\tx8640\\ql\\qnatural\\pardirnatural"
    

    您唯一可能做的事情是将字符串作为字节数组读取,并删除与\相当的字节。检查是否可能