小编Bor*_*der的帖子

从java Web应用程序访问linux本地文件系统

我们在一个web应用程序里面使用一个java库,它托管在apache server.ReadConfFile方法库中,返回文件找不到错误.方法如下

public byte[] ReadConfFile()
{
    try
    {
        File file = new File("/home/product/api/conf.txt");
        if(!file.exists())
            return "file not found".getBytes();
        byte[] buf = new byte[(int) file.length()];

        FileInputStream fis = new FileInputStream(file);
        fis.read(buf);
        return buf;
    } catch (IOException e)
    {
        e.printStackTrace();
        return null;
    }
}
Run Code Online (Sandbox Code Playgroud)

是否允许从Web应用程序访问本地文件系统?如果是,那么是否有必须设置的访问权限?

java linux web-applications static-libraries file-access

2
推荐指数
1
解决办法
4404
查看次数

将txt写入文件而不附加

好的,所以我正在实现一个系统,我保存在.txt文件中的计数.

计数是一个整数.

我唯一的问题是,而不是取代以前的计数; 例如

"78" -> "79"
Run Code Online (Sandbox Code Playgroud)

它将新计数添加到先前的计数; 例如

"78" -> "7879"
Run Code Online (Sandbox Code Playgroud)

我的代码是:

private static void saveCount(int inCount) throws FileNotFoundException, IOException {
    BufferedReader fbr = new BufferedReader(new FileReader("count.txt"));
    try (FileWriter fw = new FileWriter("count.txt", (fbr.readLine() != null))) {
        String count = Integer.toString(inCount);
        fw.write(count);
    }
}
Run Code Online (Sandbox Code Playgroud)

java string io

2
推荐指数
1
解决办法
183
查看次数

Java在类中交叉泛型

我有两个相互泛化的课程.但是当他们聚在一起时,他们的参数化存在问题.这是课程:

public abstract class AView<T extends IController> {
    protected T controller;
}

public abstract class AController<T extends AView> implements IController {
    protected T view;
}
Run Code Online (Sandbox Code Playgroud)

在这里,AController应该被参数化为<T extends AView<AController<T>>>(但它看起来太过重了?)这里是参数化示例:

public abstract class AWindowView<T extends AController> extends AView<T> {}
Run Code Online (Sandbox Code Playgroud)

这里的AController应该参数化,但是如何?而且,它会非常超载.也不建议使用通配符.

这段代码的原因是在他们孩子的彼此的课程中有一个参考.我以前的版本在控制器视图中只有一个引用,并且该实现只有一个简单的泛型.但现在我不知道如何解决这个问题.

java generics

2
推荐指数
1
解决办法
305
查看次数

两个文件是否指向同一个文件?

我想确保两个java.io.File没有指向同一个文件,我尝试了各种方法,最后找到了一种方法,但我想确保它周围没有漏洞.

这很重要,因为我正在尝试编写一个删除重复文件的程序,我不想因为两个java.io.File指向同一个文件而最终删除一个唯一的文件.

File f1 = new File("file.txt");
File f2 = new File("./file.txt");
//these methods can't tell it's the same file
System.out.println(f1.compareTo(f2)); // 56 which mean not equal
System.out.println(f1.equals(f2)); // false
System.out.println(f1 == f2); // false
System.out.println(f1.getAbsolutePath().compareTo(f2.getAbsolutePath())); // 56

// this method can tell it's the same file... hopefully.
try{
    System.out.println(f1.getCanonicalPath().compareTo(f2.getCanonicalPath())); // 0
}catch (Exception e){
    e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)

另一方面,我的try-catch代码有问题吗?我跑的时候会给我一个警告.

java file-comparison

2
推荐指数
1
解决办法
1061
查看次数

多个开关用于相同的情况

我有这个代码:

switch(month){
    case 1:
        System.out.print("January");
            break;
case 2:
    System.out.print("February");
        break;
case 3:
    System.out.print("March");
        break;
case 4:
    System.out.print("April");
        break;
case 5:
    System.out.print("May");
        break;
case 6:
    System.out.print("June");
        break;
case 7:
    System.out.print("July");
        break;
case 8:
    System.out.print("August");
        break;
case 9:
    System.out.print("September");
        break;
case 10:
    System.out.print("October");
        break;
case 11:
    System.out.print("November");
        break;
case 12:
    System.out.print("December");
        break;
}
Run Code Online (Sandbox Code Playgroud)

好的,所以这个代码100%完美地工作...对于int月.我有另一个int(avgMonth)只能保持相同的值(1-12),我想只有相同的输出(月份).如何在不必复制整个交换机和案例的情况下将avgMonth添加到此代码中?我尝试使用逗号(月,avgMonth)和&&(月&& avgMonth)以及+'s(月+ avgMonth),但无济于事.

java case switch-statement

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

编译时,我收到错误:"无法访问的语句".我该如何解决这个问题?

public double Convertir(double Number) {
    Number = nombre;
    while ((Number - 365) >= 0) {
        annee += 1;   //this calculates the number of years    
    }
    return annee;
    double nombreSemaine = Number - (annee * 365);
    while ((nombreSemaine - 7) >= 0) {
        semaine = semaine + 1;
    }//this calculates the number of weeks
    return semaine;
    double nombreJour = Number - (annee * 365) - (semaine * 7);
    nombreJour = jour;
    return jour;
}
Run Code Online (Sandbox Code Playgroud)

使用此代码,我试图将用户编写的数字(天数)转换为它所生成的年数,周数和天数.例如,数字365应返回1年0周0天.

java methods object

0
推荐指数
2
解决办法
165
查看次数

使用的可变容器但是日食说他们不是吗?

我正在用Java进行一些输入处理,我遇到了一些麻烦.我有两个变量(xMove和zMove),我已经多次在代码中使用它们,但eclipse拒绝承认它们的使用.我有一种感觉,这是导致我出现问题的原因,所以请看看,这样我就能看出我做错了什么

    public void tick(boolean forward, boolean back, boolean left, boolean right, boolean turnLeft, boolean turnRight) {
        double xMove = 0.0;
        double zMove = 0.0;

        if (forward) {
            zMove++;
        }
        if (back) {
            zMove--;
        }
        if (left) {
            xMove++;
        }
        if (right) {
            xMove--;
        }
        if (turnLeft) {
            zMove++;
        }
        if (turnRight) {
            zMove++;
        }

    }
Run Code Online (Sandbox Code Playgroud)

java variables

0
推荐指数
1
解决办法
50
查看次数