小编dww*_*n66的帖子

在java中使用FileVisitor的正确方法

我试图遍历整个路径及其单层子目录.对于每个文件,我需要读取五个数据字段并将它们输出到分隔的文本文件.我能够从单个文本文件中读取并在屏幕上验证我的输出; 之后我被卡住了.我似乎无法为FileVisit找到合适的参数.一些具体问题是我在下面发布的代码中的注释.虽然我不是那么远,但是我想知道写一个输出文件,即我希望把它放在哪个地方是最合乎逻辑的.

我已经在文件访问者http://docs.oracle.com/javase/7/docs/api/上查看了/sf/ask/693941/和JavaDocs的信息.
index.html?java/nio/file/FileVisitor.html.但是,我仍然无法让FileVisitor正常工作.

@Bohemian建议将interfaceclass,我所做的一切.

 import java.nio.files.*;
 public class FileVisitor<T> 
 {
      Path startPath = Paths.get("\\CallGuidesTXT\\");
      Files.walkFileTree(startPath, new SimpleFileVisitor(startPath))
      \\             ^^^^^^    
      \\ errors out, <identifier expected>          
          { 
          @Override
          public FileVisitResult visitFile(Path file, BasicFileAttributes attrs)
              throws IOException
          {
              Files.list(file);
              return FileVisitResult.CONTINUE;
          }
        // do my file manipulations here, then write the delimited line 
        // of text to a CSV fle...is this the most appropriate place for that 
        // operation in this …
Run Code Online (Sandbox Code Playgroud)

io java-7 filevisitor

6
推荐指数
2
解决办法
2万
查看次数

为什么System.out.print()不起作用?

所以我的编码很重要,但我认为这是一个相对简单的"读取文件"程序.我收到很多编译错误,所以我开始尝试一次编译一行,看看我在哪里被软管.这是我到目前为止的地方:

import java.nio.file.*;
import java.io.*;
import java.nio.file.attribute.*;
import java.nio.channels.FileChannel;
import java.nio.ByteBuffer;
import static java.nio.file.StandardOpenOption.*;
import java.util.Scanner;
import java.text.*;
//
public class ReadStateFile
{
    Scanner kb = new Scanner(System.in);
    String fileName;     /* everything through here compiles */
    System.out.print("Enter the file to use: ");
}
Run Code Online (Sandbox Code Playgroud)

注意:这是从另一个类中的方法调用的前三行构造函数.其余的构造函数继续下面......当然没有上面的第二个大括号......

fileName = kb.nextLine();
Path file = Paths.get(fileName);
//
final String ID_FORMAT = "000";
final String NAME_FORMAT = "     ";
final int NAME_LENGTH = NAME_FORMAT.length();
final String HOME_STATE = "WI";
final String BALANCE_FORMAT = "0000.00";
String delimiter …
Run Code Online (Sandbox Code Playgroud)

java syntax system.out

6
推荐指数
2
解决办法
3万
查看次数

如何从一个以逗号分隔的列表中填充两个单独的数组?

我有一个逗号分隔的文本文件,其中包含由逗号分隔的20位数字.这些数字代表10个不同作业的获得积分和可能积分.我们将使用它们来计算课程的最终分数.

通常情况下,我会迭代数字,创建两个总和,除以并完成它.但是,我们的任务规定我们将数字列表加载到两个数组中.

所以这:

10,10,20,20,30,35,40,50,45,50,45,50,50,50,20,20,45,90,85,85
Run Code Online (Sandbox Code Playgroud)

成为这个:

int[10] earned   = {10,20,30,40,45,50,20,45,85};
int[10] possible = {10,20,35,50,50,50,20,90,85};
Run Code Online (Sandbox Code Playgroud)

现在,我正在使用

for (x=0;x<10;x++)
{
     earned[x] = scores[x*2]
     poss  [x] = scores[(x*2)+1]
}
Run Code Online (Sandbox Code Playgroud)

这给了我想要的结果,但看起来过于笨重.

有没有更好的办法?

c# arrays

6
推荐指数
1
解决办法
166
查看次数

范围如何影响"do ... while"循环,反之亦然?

C#Homework问题:我刚刚使用do-while循环添加了一些"再次播放"逻辑.这是我的原始代码:

namespace demo
{
    class Program
    {
        static void Main(string[] args)
        {
            Info myInfo = new Info();
            myInfo.DisplayInfo("Daniel Wilson", "4 - Hi-Lo Game");
               // I moved  String playAgain = "N"; to here 
            do
            {
                DWHiLowUI theUI = new DWHiLowUI();
                theUI.Play();
                String playAgain = "N";
                Console.WriteLine("Enter 'Y' to play again, any other key to exit.");
                playAgain = Console.ReadLine();
            }
            while ((playAgain == "Y")||(playAgain =="y"));
            Console.ReadLine();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这给了我一个错误:

Error   7   The name 'playAgain' does not exist in the current context …
Run Code Online (Sandbox Code Playgroud)

c# scope loops

5
推荐指数
2
解决办法
1052
查看次数

有没有办法强制Powershell以只读方式打开文档并关闭而不保存?

我有一个脚本,可以解析Word文档中的数据。我今天早上到达办公室,发现脚本没有完成,挂在“正在使用的文件”对话框中。我$trueMSDN上找到了对参数的引用-打开“只读” ,但仍然看到对话框。

在此处输入图片说明

当然,一件事导致另一件事,现在我还得到对话框,询问是否要保存更改,然后再打开NEXT文档,由于打开了对话框,该文档无法访问。叹。如何打开文档,扫描它的数据(超链接),然后不保存就关闭该文档?

在此处输入图片说明

代码出现在这里。我没有包括写入$hyperlinks文件的步骤;我只是专注于使文件读取关闭部分正常工作。

$global:word = new-object -ComObject Word.Application 
$word.Visible = $False 
$backupPath   = "\\Path\to\files\"   # Backup data path
$srcfiles     = Get-ChildItem $backupPath -filter "*.doc"
 #   
foreach ($doc in $srcfiles) {
    $word.documents.Open($doc.Fullname,$true);
    $links = @($doc2.Hyperlinks);
    $links
    $word.Quit();
}
Run Code Online (Sandbox Code Playgroud)

powershell file-io

5
推荐指数
1
解决办法
1万
查看次数

我可以在一个开关中使用一系列值吗?

我正在尝试简化Card类,我想知道是否有任何方法可以在switch语句中使用一系列值?

考虑:

 if((card<14))
     suit="Hearts";
     else
     if((card>14)&&(card<27))
         suit="Clubs";

             etc.
Run Code Online (Sandbox Code Playgroud)

相反,我想使用switch语句,例如:

switch(card){
    case1: through case13:
    suit="Hearts";
    break;

       etc.
Run Code Online (Sandbox Code Playgroud)

我无法在Java教程中找到任何表明存在切换变化的内容.但是有吗?

java switch-statement

4
推荐指数
1
解决办法
8803
查看次数

Java导入中的通配符如何工作?

我一直注意到我import的一些意想不到的结果,我希望能够理解真正发生的事情.我从以下开始:

import java.util.*;
import java.io.*;
import java.nio.*;
import java.nio.file.Path;
import java.nio.file.StandardOpenOption.*;
import java.nio.file.Paths;
Run Code Online (Sandbox Code Playgroud)

然后发现,ArrayListListIterator没有工作......所以我说

import java.util.ArrayList;
import java.util.ListIterator;
Run Code Online (Sandbox Code Playgroud)

一切都很完美.

我会假设java.util.*也会导入ArrayListListIterator.为什么不呢?

我倾向于使用我的类/方法/变量名称过于冗长,并且我在程序的其余部分中找不到任何甚至接近保留字的内容.

我在文档中找不到任何可以解释为什么会发生这种情况的内容,而关于Stack的大多数讨论都是关于使用*与明确编码的导入进行优化.

任何人都有任何想法,我可以看看,以了解这种行为?

java syntax import

4
推荐指数
1
解决办法
702
查看次数

为什么Java的`indexOf`返回除(-1)以外的负数

我有一个多行文本输入文件:如果存在字符串"日志编号:",它后面紧跟一个日志编号.如果字符串"Log Number:"不存在,则该记录中没有日志编号.总是有字符串"Log Date:".它遵循"Log Number:"(如果存在)并显示在文件中的该位置(如果不存在).

我的问题inputLine来自于BufferedReader逐行阅读我的文件.

...
if((inputLine.indexOf("Log Number:"))>-1) {
  logNumRecStart = inputLine.indexOf("Log Number:")+12;}
else
  logNumRecStart = 0;
logNumRecEnd = inputLine.indexOf("Log Date:");
...
logNumber = inputLine.substring(logNumRecStart,logNumRecEnd);
...
Run Code Online (Sandbox Code Playgroud)

当我输出Start和End indeces时,这里是我得到的样本.

49>>>  -0 to 357
50>>>  -0 to 361
51>>>  -0 to 384
52>>>  -371 to 390
53>>>  -315 to 334
54>>>  -325 to 352
Run Code Online (Sandbox Code Playgroud)

记录49-51是"日志编号:"没有出现在输入行中的情况,并且如预期的那样,logNumRecStart设置为0.记录52-54 确实包括"日志编号:",但索引被设置为负数数字,导致我的子串获得越界异常.目视检查文件证明了在适当的行中存在(或不存在)测试值.logNumRecEnd在所有情况下,我的价值是正确的.

通过计算源文件中的字符inputLine,我已经验证了如果负值logNumRecStart是正的,那么它就是正确的数字.

我没有使用,lastIndexOf所以我不知道为什么我会得到负值.任何人都可以看到我失踪的东西或者我需要检查的东西,我没有提到过吗?

java indexof

3
推荐指数
1
解决办法
2843
查看次数

使用PowerShell重命名文件时,如何使用"["处理文件名?

我正在运行此PowerShell命令:

Get-ChildItem .\tx\*.htm | Rename-Item -NewName {$_.Name -replace '\.htm','.tmp'}
Run Code Online (Sandbox Code Playgroud)

当文件名包含方括号 - [和/或]- 时,会收到以下错误,这是可以理解的,因为这些在PowerShell语法中有意义.

Rename-Item : Cannot rename because item at
'Microsoft.PowerShell.Core\FileSystem::C:\users\xxxxx\desktop\tx\
Foofoofoofoo_foo_foo_[BAR]_Foofoofoofoo_foofoofoo.htm' does not exist.
At C:\users\xxxxx\desktop\foo002.ps1:59 char:39
+ Get-ChildItem .\tx\*.htm | Rename-Item <<<<  -NewName { $_.Name -replace '\.htm','.tmp' }
    + CategoryInfo          : InvalidOperation: (:) [Rename-Item], PSInvalidOperationException
    + FullyQualifiedErrorId : InvalidOperation,Microsoft.PowerShell.Commands.RenameItemCommand

路径中的所有其他文件具有相似的名称(Phrase_With_Underscores.htm),并且无需重大事件即可重命名.任何人都有这方面的经验,知道如何反击它,以便我可以操纵这些文件?

powershell file-rename

3
推荐指数
1
解决办法
2148
查看次数

我需要帮助了解如何在Visual Studio中组织C#项目

在过去的几个星期里,我一直在教自己C#,作为选择IDE的人是Notepad,我在转换到Visual Studio时遇到了一些困难(我使用的是2010 Express).特别是,我想知道Namespace-Class-Method层次结构的组织如何在界面中显示自己的VISUALLY.我很难理解它,更重要的是,如何使用界面有效地组织和跟踪我的项目.

例如,有"解决方案资源管理器",但没有C#"解决方案"(我知道).我怀疑这是微软的营销代表更通用的开发术语,但我无法弄明白.我可以选择创建新的"项目"."项目"是"解决方案"吗?

我对命名空间也有点模糊.我怀疑命名空间相当于Java中的类库.在现实世界中如何使用命名空间的一些示例?比如说,我正在开发个人财务应用程序.我会将一切与该应用程序相关的解决方案放在一个解决方案中吗?或者我会为现金账户和投资账户命名空间创建名称空间?

命名空间内是我的*.cs文件,但我似乎无法弄清楚如何在我的命名空间中创建一个NEW*.cs文件.我会根据资源管理器层次结构预测任何使用命名空间的类都会出现在该列表中,并且我可以根据需要使用它.例如,我可以创建enterDeposits.cs和enterWithdrawals.cs而无需创建新项目.

我在网上发现了一些教程,告诉我如何做事(比如创建一个新项目),但是如果没有对IDE词汇的充分了解,我不能确定我是否能保持一切有条理.救命!

c# installation visual-studio-2010

3
推荐指数
1
解决办法
3297
查看次数